我如何检查一个值,例如名称存在于 Cloud Firestore 中任何文档的集合中?
How can I check if a value e.g. name exists in a collection within any of documents in Cloud Firestore?
我想检查一个值,例如(名称:“John”)存在于我的 Cloud Firestore 中任何文档的集合中,因为如果存在,我不想使用该名称(在本例中为“John”)创建新文档。如何检查名称是否存在?
假设您在 Firestore 中有一个名为“users”的集合,要检查名为“John”的用户是否已经存在,请使用以下代码行:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference usersRef = rootRef.collection("users");
Query queryUsersByName = usersRef.whereEqualTo("name", "John");
queryUsersByName.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
if (document.exists()) {
Log.d("TAG", "name already exists");
} else {
//Do what you need to do
}
}
} else {
Log.d("TAG", "Error getting documents: ", task.getException());
}
}
});
如果“用户”集合中已存在名为“John”的用户,则上述代码的结果将是一条带有消息“名称已存在”的日志语句。
我想检查一个值,例如(名称:“John”)存在于我的 Cloud Firestore 中任何文档的集合中,因为如果存在,我不想使用该名称(在本例中为“John”)创建新文档。如何检查名称是否存在?
假设您在 Firestore 中有一个名为“users”的集合,要检查名为“John”的用户是否已经存在,请使用以下代码行:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference usersRef = rootRef.collection("users");
Query queryUsersByName = usersRef.whereEqualTo("name", "John");
queryUsersByName.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (DocumentSnapshot document : task.getResult()) {
if (document.exists()) {
Log.d("TAG", "name already exists");
} else {
//Do what you need to do
}
}
} else {
Log.d("TAG", "Error getting documents: ", task.getException());
}
}
});
如果“用户”集合中已存在名为“John”的用户,则上述代码的结果将是一条带有消息“名称已存在”的日志语句。