gpt4 book ai didi

firebase - Flutter Web Firebase - 按子集合字段获取集合

转载 作者:行者123 更新时间:2023-12-04 10:44:26 25 4
gpt4 key购买 nike

我正在构建与 firestore 链接的 flutter web 应用程序。数据库架构如下:

Firestore Schema

Firestore Schema

我的问题是我想通过输入用户电子邮件地址来获取用户文档引用,即(公司和用户 ID)。下面的代码是我的 getUserRef() 方法:

Future<fs.DocumentReference> getUserRef (String userEmail) async {

String comp;
String id;
List<String> companies = await companyList();
for (var i = 0; i < companies.length; i++) {
store.collection('companies').doc(companies[i]).collection('users').get().
then((val) {
val.forEach((user){
if(user.data()['Email'] == userEmail) {
comp = user.data()['company'];
id = user.id;
}

});

});

}
fs.DocumentReference ref = store.collection('companies').doc(comp).collection('users').doc(id);

return ref;
}

我的 companyList()方法工作正常并检索所有公司文档 ID 的列表。我不知道如何让这个工作,没有它就无法继续这个项目。

任何帮助表示赞赏。

最佳答案

听起来您正在寻找一个集合组查询,这将是在 users 中搜索的单个查询。所有公司的一次。

这将是一个查询,如:

var query = Firestore.instance.collectionGroup("users").where("Email", isEqualTo: userEmail);
var querySnapshot = await query.getDocuments();
var userDocumentRef = querySnapshot.documents[0];

另见:
  • Understanding Collection Group Queries in Cloud Firestore
  • 关于firebase - Flutter Web Firebase - 按子集合字段获取集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59773573/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com