【问题标题】:Correlating with Firebase and Firestore与 Firebase 和 Firestore 相关联
【发布时间】:2019-04-07 20:19:46
【问题描述】:
是否可以将使用 Firebase 身份验证的“电子邮件 ID”与 Firestore 中固定集合下的所有文档中的电子邮件字段进行比较?
例如:如果一个人使用 Firebase 身份验证和管理活动注册 xyz@gmail.com,我将用户“电子邮件 ID”存储为 xyz@gmail.com。
如果用户现在登录,他们点击查看我的详细信息按钮,他们可以查看详细信息吗?
我使用 whereEqualTo 进行比较,但没有发生
如何在所有文档中搜索电子邮件字段
【问题讨论】:
标签:
android
firebase
firebase-realtime-database
firebase-authentication
google-cloud-firestore
【解决方案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);