Флаттер: Как получить все пользовательские данные Firebase из его uid? - PullRequest
0 голосов
/ 25 января 2020

Моя база данных выглядит примерно так: enter image description here Теперь, когда я начну добавлять все больше и больше данных, я буду получать множество пользователей. Я хочу извлечь данные из одного пользователя на основе их идентификатора пользователя. Я пытался использовать эти коды, но ни один из них не работал. Я получаю данные в массе всех пользователей, но я просто хочу одного из них. Вот моя попытка:

final data=await _collection.collection('UserDetails').getDocuments();
    //print(user.uid);
    DocumentReference ref = await _collection.collection('UserDetails').document(user.uid);
    var lister=await ref.collection('Name');
    print(lister);

Это код для получения всех их данных:

for(var msgs in data.documents)
      {
        print(msgs.data);
      }

Я хочу функцию или что-нибудь, что могло бы возвращать данные таким способом: function.giveUserID ( 'uid'). giveDataYouwanttoExtract ('Attribute') Я могу отфильтровать, используя строковые условия из всех данных, которые я получаю, но по мере роста базы данных ей придется извлекать тонны данных одновременно, что повлияет на производительность, и поэтому я хочу сделать это таким образом. Пожалуйста, дайте мне знать, если есть какой-либо способ просто извлечь данные одного пользователя на основе его uid или электронной почты или чего-либо еще.

1 Ответ

1 голос
/ 25 января 2020

Вы можете использовать запросы. Код ниже возвращает всех пользователей, имя которых равно Джеку.

await _db.collection("UserDetails")
      .where("Name", isEqualTo: "Jack")
      .getDocuments()
      .then((QuerySnapshot snapshot){
            snapshot.documents.forEach((DocumentSnapshot documentSnapshot){
                print(documentSnapshot.data);
            });
       });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...