【问题标题】:How to check which collection a user's data is in? Cloud Firestore如何检查用户的数据在哪个集合中?云防火墙
【发布时间】:2021-08-12 04:38:47
【问题描述】:

如何在 Cloud Firestore 集合中搜索用户的电子邮件?我有 3 个集合,在登录页面中,我想获取输入的电子邮件并对照我在云中的三个集合进行检查,一旦在其中一个集合中找到电子邮件,它将导航到某个页面,具体取决于哪个用户的电子邮件保存在集合中。

该应用程序是使用 Flutter 和 dart 开发的。

按下按钮时,sn-p波纹管在登录页面中。

if (_key.currentState.validate()) {
                _key.currentState.save();
                try {
                  final userlogin = FirebaseAuth.instance
                      .signInWithEmailAndPassword(
                          email: _email, password: _password);
                } on FirebaseAuthException catch (e) {
                  switch (e.code) {
                    case 'invalid-email':
                     ScaffoldMessenger.of(context).showSnackBar(
                      SnackBar(content: Text("Invalid Email")));
                      break;
                    case 'user-disabled':
                     ScaffoldMessenger.of(context).showSnackBar(
                      SnackBar(content: Text("Disabled!")));
                      break;
                    case 'user-not-found':
                     ScaffoldMessenger.of(context).showSnackBar(
                      SnackBar(content: Text("User not found")));
                      break;
                    case 'wrong-password':
                     ScaffoldMessenger.of(context).showSnackBar(
                      SnackBar(content: Text("Wrong password.")));
                      break;
                  }
                }

【问题讨论】:

    标签: firebase flutter dart google-cloud-firestore


    【解决方案1】:

    Firestore 中对 search across multiple collection 的支持非常有限:所有集合必须具有相同的名称。

    如果您的集合并非都使用相同的名称,则您需要为每个集合单独查询。在这种情况下,我实际上建议更改您的数据结构,为所有用户提供一个集合,并将他们的角色存储在每个用户的文档中。

    【讨论】:

      猜你喜欢
      • 2015-06-03
      • 2021-05-05
      • 1970-01-01
      • 2016-09-10
      • 2021-08-27
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      • 2019-06-05
      相关资源
      最近更新 更多