Я действительно новичок в Firebase.Я делаю приложение для Android, которое использует FireStore в качестве базы данных.Моя проблема, когда я пытаюсь проверить, существуют ли определенные данные.Он всегда скажет, что это не так.
Это метод, в котором это происходит.
private void usernameInDatabase(final String username){
if (registration != null)
registration.remove();
registration = utilizadores.addSnapshotListener(new EventListener<DocumentSnapshot>() {
@Override public void onEvent(@Nullable DocumentSnapshot snapshot,
@Nullable FirebaseFirestoreException e) {
if (e != null) {
Log.w("Utilizadores", "Listen failed.", e);
return;
}
if (snapshot != null && snapshot.exists()) {
Log.d("Utilizadores", snapshot.getData().toString());
Log.d("Utilizadores", username);
if (snapshot.get(username) == null) {
loginFormState.setValue(new LoginFormState(R.string.utilizadorNaoBaseDados, null));
utilizadorNaBaseDados = false;
Log.d("Utilizadores", "Not Database :(");
} else {
utilizadorNaBaseDados = true;
Log.d("Utilizadores", "base de dados ;D");
}
} else {
Log.d("Utilizadores", "Current data: null");
}
}
});
}
Как вы можете видеть, я проверяю данные, которые я могу получить из пожарного хранилища здесь:
Log.d("Utilizadores", snapshot.getData().toString());
Log.d("Utilizadores", username);
Вот что я получаю в logcat:
{daniel@gmail.com= {dataNasc = Метка времени (секунды = 862182000, наносекунды = 0), почта = Даниель @gmail.com, pass =, nome = Даниэль Марко, id = danMar125}, ester@gmail.com= {dataNasc = метка времени (секунды = 902876400, наносекунды = 0), mail=ester@gmail.com, pass =, nome =Эстер Мендес, id = est124}, ola@g.co=hgjk, marcio@gmail.com= {dataNasc = метка времени (секунды = 680914800, наносекунды = 0), mail=marcio@gmail.com, pass =, nome = MárcioМаркиз, id = marMar123}, marco@gmail.com= {dataNasc = Метка времени (секунды = 923180400, наносекунд = 0), mail=marco@gmail.com, pass =, nome = Марко Антонио, id = marAnt545}, Мария @gmail.com = {dataNasc = метка времени (секунды = 877561200, наносекунды = 0), mail=maria@gmail.com, pass =, nome = Мария Антониета, id = marAnt999}}
daniel@gmail.com
Итак, я знаюБлагодаря тому, что имя пользователя, которое я ищу, находится в базе данных, и я знаю, что данные извлекаются из базы данных, но они продолжают действовать, как будто это не так.
Кто-нибудь может мне помочь, пожалуйста?
Редактировать
Это моя структура базы данных.
И вот как я определил утилитарные ресурсы.
DocumentReference utilizadores = db.collection("Domum").document("Utilizador");