Сопоставление с Firebase и Firestore - PullRequest
0 голосов
/ 04 ноября 2018

Можно ли сравнить «идентификатор электронной почты» с использованием аутентификации Firebase с полем электронной почты во всех документах в фиксированной коллекции в Firestore?

Например: если человек регистрируется с помощью xyz@gmail.com с использованием Firebase Auth и из действия администратора, я сохраняю "email-идентификатор" пользователя как xyz@gmail.com.

Если пользователь сейчас входит в систему, он нажимает на кнопку «Просмотреть мои данные», могут ли они просматривать детали?

Я использовал whereEqualTo для сравнения, но ничего не происходит Как искать поле электронной почты во всех документах

1 Ответ

0 голосов
/ 04 ноября 2018

Можно ли сравнить «идентификатор электронной почты» с помощью аутентификации Firebase с полем электронной почты во всех документах в фиксированной коллекции в firestore?

Да, это так. Сначала вам нужно получить адрес электронной почты вошедшего в систему пользователя из процесса аутентификации, например:

String emailAddress = FirebaseAuth.getInstance().getCurrentUser().getEmail();

Предполагая, что ваша "фиксированная" коллекция выглядит следующим образом:

Firestore-root
    |
    --- users (collection)
         |
         --- uid (document)
              |
              --- emailAddress: "xyz@gmail.com"

Чтобы сравнить электронную почту вошедшего в систему пользователя со всеми адресами электронной почты из базы данных, вам нужно использовать этот запрос:

FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
CollectionReference usersRef = rootRef.collection("users");
Query query = usersRef.whereEqualTo("emailAddress", emailAddress);
...