我实在找不到怎么做,如何在我的Recycler中查看某个部门的所有值。 首先,这可能吗? 这就是我的 Firestore 数据库的外观,“blue_bottle”和“tops_national”是文档的一部分:
我想用同一部门的“blue_bottle”和“tops_national”中的所有产品填充我的 RecyclerView。 所以我需要一个我认为正确的文档参考:
private val promoOnedb = FirebaseFirestore.getInstance()
private val promoOneRef: DocumentReference = promoOnedb.collection("tops")
.document("promotions")
但是我现在如何查询 DocumentReference 以显示两个集合中的所有产品以显示同一部门的所有产品?请。
Firestore 中跨多个集合读取的唯一方法是使用集合组查询,它从具有特定名称的所有集合中读取。
o 使用单个集合组查询,您可以从所有
blue_bottle
集合或所有 tops_national
集合中读取。但是,Firestore 中没有功能可以通过单个操作读取所有 blue_bottle
集合 和 所有 tops_national
集合。您将需要至少两个(集合组)查询,从而合并应用程序代码中的结果。
如果您想通过一次操作读取所有产品,则需要将它们存储在同名的集合中,例如
products
。只有这样你才能使用单个集合组查询一次性读取它们。
**Easy method to fecth 2 collections Data**
Future<void> fetchDataFromMultipleCollections() async {
final firestore = FirebaseFirestore.instance;
// Define the collections you want to fetch data from
final Collection1 = firestore.collection('collection');
final Collection2 = firestore.collection('collection2');
try {
// Create queries for each collection
final collection1Query = Collection1.get();
final collection2Query = Collection2.get();
// Execute the queries simultaneously
final [collection1Snapshot, collection2Snapshot] = await Future.wait([
collection1Query,
collection2Query,
]);
// Get the data from the queries
final collection1Data = collection1Snapshot.docs.map((doc) => doc.data()).toList();
final collection2Data = collection2Snapshot.docs.map((doc) => doc.data()).toList();
// Do something with the fetched data
print('Colelction1 Details: $collection1Data');
print('Collection2 Details: $collection2Data');
} catch (e) {
print('Error fetching data: $e');
}
}