Firebase Firstore子集合

时间:2020-05-05 03:06:57

标签: firebase flutter google-cloud-firestore

enter image description here

请在Flutter中如何获取 class iBeaconListVC: UIViewController, CLLocationManagerDelegate { let lm = CLLocationManager() var beaconsArray = [CLBeacon]() let uuid1 = UUID(uuidString: "FDA50693-A4E2-4FB1-AFCF-C6EB07647825") let uuid2 = UUID(uuidString: "AB8190D5-D11E-4941-ACC4-42F30510B408") var beaconRegion1: CLBeaconRegion! var beaconRegion2: CLBeaconRegion! @IBOutlet weak var baconsListTV: UITableView! override func viewDidLoad() { super.viewDidLoad() lm.requestAlwaysAuthorization() lm.delegate = self let beaconRegion1 = CLBeaconRegion(proximityUUID: uuid1!, identifier: "beacon1") let beaconRegion2 = CLBeaconRegion(proximityUUID: uuid2!, identifier: "beacon2") lm.startRangingBeacons(in: beaconRegion1) lm.startRangingBeacons(in: beaconRegion2) } func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) { self.beaconsArray.removeAll() if beacons.count > 0 { beaconsArray.append(contentsOf: beacons) for beacon in beacons { print("info=\(beacon.proximityUUID.uuidString)major=\(beacon.major) minor=\(beacon.minor) accuracy=\(beacon.accuracy) rssi=\(beacon.rssi)") self.baconsListTV.reloadData() } } } } extension iBeaconListVC: UITableViewDelegate, UITableViewDataSource { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return beaconsArray.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let beacon = beaconsArray[indexPath.row] let cell = self.baconsListTV.dequeueReusableCell(withIdentifier: "beaconsCell") as! BeaconsCell cell.IDLabel.text = "UUID: " + String(beacon.proximityUUID.uuidString) cell.detailLabel.text = "Details: Major = " + String(beacon.major.intValue) + " Minor = " + String(beacon.minor.intValue) + " Distance: " + String(beacon.proximity.rawValue) cell.infoLabel.text = "RSSI: " + String(beacon.rssi) return cell } func numberOfSections(in tableView: UITableView) -> Int { return 1 } } 子集合的所有值。

2 个答案:

答案 0 :(得分:0)

首先,您必须获得对父文档的引用:

DocumentReference parentRef = Firestore.intances.collection('TaxData').document(taxDataId);

您可以通过直接引用文档(如上面的代码)或查询来完成上一部分。以后,您必须获取子集合的引用以及获得该信息的文档:

DocumentReference subRef = parentRef.collection('IndividualTaxData').document(individualTaxId);

最后,获取数据:

DocumentSnapshot docSnap = await subRef.get();

答案 1 :(得分:0)

要返回简单文档,可以使用以下代码。

var document = await Firestore.instance.collection('IndividualTaxData').document('<document_name>');
document.get() => then(function(document) {
    print(document('character'));
    // you can print other fields from your document
}

使用上述代码,您将引用集合IndividualTaxData,然后将其数据加载到可以打印值的变量中。

如果要从集合中检索所有文档,可以开始使用以下代码。

final QuerySnapshot result = await Firestore.instance.collection('IndividualTaxData').getDocuments();
final List<DocumentSnapshot> documents = result.documents;

documents.forEach((data) => print(data));
// This print is just an example of it.

这样,您会将所有文档加载到列表中,然后进行迭代并打印-或可以与其他方法一起使用。

除此之外,作为以后的参考,我建议您也检查以下链接。

让我知道信息是否对您有所帮助!