В мире баз данных NoSQL запрос, который выглядит следующим образом:
SELECT "name" FROM users WHERE email = "user@gmail.com"
Может быть написан двумя способами.Если вы используете База данных Firebase Realtime , запрос должен выглядеть следующим образом:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("users");
Query query = usersRef.orderByChild("email").equalTo("user@gmail.com");
А если вы используете Cloud Firestore , запрос должен выглядеть следующим образом:
FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference usersRef = rootRef.collection("users");
Query query = usersRef.whereEqualTo("email", "user@gmail.com");
Редактировать:
Согласно вашему комментарию, чтобы получить имя, используйте вышеуказанные строки вместе со следующими строками кода:
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String name = ds.child("name").getValue(String.class);
Log.d(TAG, name);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d(TAG, databaseError.getMessage()); //Don't ignore errors!
}
};
query.addListenerForSingleValueEvent(valueEventListener);