Как получить поле массива документа в хранилище огня

Я работаю в трепете и пытаюсь получить поле массива документа в хранилище огня. Но при этом возникло несколько проблем:

  1. Невозможно назначить этот массив строк идентификаторов из хранилища огня в список во флаттере
  2. каждый раз, когда я пытаюсь получить поле массива, по какой-то странной причине поле массива удаляется из хранилища огня.

Вот код функции:

static List<String> getChatingTiles(String currentUserId) {
    CollectionReference users = firestore.collection("users");
    List<String> sessionIdList = <String>[];
    //trying to get the array field of the document that has an id of currentUserId
    users.doc(currentUserId).get().then((snapshot) => {
       //trying to loop through the array called sessions and adding every string element into the list
       for(String elem in snapshot.data()['sessions']) {
         sessionIdList.add(elem)
       }
    });
    print("list is here :");
    print(sessionIdList);
    return sessionIdList;
  }

С 1-м выпуском sessionIdList остался пустым? Получила ли ваша итерация elem значение, отличное от NULL, или оно допускает значение NULL. Вы также должны печатать внутри цикла for, чтобы проверить данные. Что касается второй проблемы, это, вероятно, связано с некоторыми другими логиками обновления firestore, которые не связаны с этим кодом здесь.

Bach 03.04.2021 06:56
Интеграция Angular - Firebase Analytics
Интеграция Angular - Firebase Analytics
Узнайте, как настроить Firebase Analytics и отслеживать поведение пользователей в вашем приложении Angular.
0
1
17
1

Ответы 1

вы можете попробовать сделать это

sessionid = snapshot.data['sessions']

после получения снимка документа верните его

Другие вопросы по теме