Как искать значение в Firestore - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть база данных Firestore, которая выглядит следующим образом

- user
    - (document id)
        - userId: Rsa245156.....
        - username: user67
        - age: 23
        - address: Flamboyan Street No. 24
        - picture_path: ......

Я создал userId из userId, который находится в Firebase Auth, поэтому, когда вошедший в систему пользователь открывает вкладку профиля, приложение будет искать userId в базе данных Firestore, который совпадает с userId пользователя, который вошел в систему, и загрузите все поля, связанные с этим userId.

Вопрос в том, как найти один и тот же идентификатор пользователя и загрузить все поля или только поле «имя пользователя»? Я использую флаттер

Ответы [ 2 ]

0 голосов
/ 17 апреля 2019

Как вы хотите использовать Firestore, вы можете использовать этот код ниже. Старая Firebase - другой класс.

Firestore _firestore = Firestore.instance;
firestore.collection('user')
        .where('userId', isEqualTo: user.reference)
        .snapshots().listen((snapshot) {
           snapshot.documents.forEach((doc) {
              doc.data['username']
      })
    })
0 голосов
/ 17 апреля 2019

вы можете достичь, используя данные текущих пользователей (электронная почта). orderByChild выберите поле, а метод equalTo сравнивает значение.

Я надеюсь, что следующий пример поможет вам больше.

FirebaseUser user = await FirebaseAuth.instance.currentUser(); // get the current users details
DatabaseReference ref = FirebaseDatabase.instance.reference();
ref.child('user')
    .orderByChild('userId')// userId contain the email id of users
    .equalTo(user.email) // if you login your user using email ID
    .onValue
    .listen((event) {
  DataSnapshot data = event.snapshot;
  var keys = data.value.keys;
  var todo = data.value;
  for (var key in keys) {
    _email= todo[key]['userId']; // get the email id
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...