与Firebase和Firestore相关

时间:2018-11-04 05:30:52

标签: android firebase firebase-realtime-database firebase-authentication google-cloud-firestore

是否可以将使用Firebase身份验证的“电子邮件ID”与Firestore中固定集合下所有文档中的电子邮件字段进行比较?

例如:如果某人正在使用Firebase Auth和xyz@gmail.com进行注册,并且从admin活动中,我将用户“电子邮件ID”存储为xyz@gmail.com

如果用户现在登录,则单击“查看我的详细信息”按钮,是否可以查看详细信息?

我使用whereEqualTo进行比较,但没有发生 如何在所有文档中搜索电子邮件字段

1 个答案:

答案 0 :(得分:1)

  

是否可以将使用Firebase身份验证的“电子邮件ID”与Firestore中固定集合下所有文档中的电子邮件字段进行比较?

是的。首先,您需要从身份验证过程中获取登录用户的电子邮件地址,如下所示:

String emailAddress = FirebaseAuth.getInstance().getCurrentUser().getEmail();

假设您的“固定”收藏集如下所示:

Firestore-root
    |
    --- users (collection)
         |
         --- uid (document)
              |
              --- emailAddress: "xyz@gmail.com"

要将登录用户的电子邮件与数据库中的所有电子邮件地址进行比较,您需要使用以下查询:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference usersRef = rootRef.collection("users");
Query query = usersRef.whereEqualTo("emailAddress", emailAddress);