我打算查询集合中的所有文档以输出一个结果(用户名)。根据我的研究,此功能在Firestore上尚不可用。我有什么选择?
我正在开发一个Android应用,该应用可以使用户使用电话号码查询数据库,并获取与他们搜索的电话号码链接的用户名。每个文档中只有2个字段:Phone number
和Username
。
每当用户搜索电话号码时,都应查询集合中的每个文档,直到找到该电话号码并返回与该电话号码链接的用户名为止。
我该如何处理?我还要感谢Firestore的其他替代方案。
谢谢!
答案 0 :(得分:0)
假设您有一个类似于以下内容的数据库:
Firestore-root
|
--- users (collection)
|
--- userId (document)
|
--- phoneNumber: 123456789
|
--- userName: "UserName"
要根据用户的电话号码获取其用户名,您需要使用查询。因此,请使用以下代码行:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference usersRef = rootRef.collection("users");
Query query = usersRef.whereEqualTo("phoneNumber", 123456789);
query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
String userName = document.getString("userName");
Log.d(TAG, userName);
}
}
}
});
您的logcat中的输出将是:
UserName