我需要有关Firestore的帮助。我有一个AllUsers数据集合,其中包含每个用户信息的用户ID文档。我想检查用户名是否已经存在; //“该用户名已经存在”。我该怎么办?
` setupBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String user_name = setupName.getText().toString();
Map<String, Object> commentsMap = new HashMap<>();
commentsMap.put("user_id", user_id);
commentsMap.put("timestamp", FieldValue.serverTimestamp());
commentsMap.put("user_name",user_name);
firebaseFirestore.collection("AllUsers").document(user_id).set(commentsMap).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()){
Intent asda=new Intent(getApplicationContext(),MainActivity.class);
startActivity(asda);
finish();
}
}
});
`
答案 0 :(得分:1)
希望这会有所帮助。
setupBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String userName = setupName.getText().toString();
CollectionReference usersRef = firestore.collection("Users");
Query query = usersRef.whereEqualTo("username", userName);
query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if(task.isSuccessful()){
for(DocumentSnapshot documentSnapshot : task.getResult()){
String user = documentSnapshot.getString("username");
if(user.equals(userName)){
Log.d(TAG, "User Exists");
Toast.makeText(MainActivity.this, "Username exists", Toast.LENGTH_SHORT).show();
}
}
}
if(task.getResult().size() == 0 ){
Log.d(TAG, "User not Exists");
//You can store new user information here
}
}
});
}
});