是否可以将使用Firebase身份验证的“电子邮件ID”与Firestore中固定集合下所有文档中的电子邮件字段进行比较?
例如:如果某人正在使用Firebase Auth和xyz@gmail.com
进行注册,并且从admin活动中,我将用户“电子邮件ID”存储为xyz@gmail.com
。
如果用户现在登录,则单击“查看我的详细信息”按钮,是否可以查看详细信息?
我使用whereEqualTo进行比较,但没有发生 如何在所有文档中搜索电子邮件字段
答案 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);