Как получить идентификатор документа после добавления документа в Cloud Firestore в Dart - PullRequest
0 голосов
/ 27 июня 2018

Я использую следующий код для обновления коллекции Cloud Firestore, используя Dart / Flutter.

  final docRef = Firestore.instance.collection('gameLevels');
  docRef.document().setData(map).then((doc) {
    print('hop');
  }).catchError((error) {
    print(error);
  });

Я пытаюсь создать documentID, когда я добавляю документ в коллекцию, но параметр (doc) возвращается как ноль. Я думал, что это должен был быть documentReference?

Поскольку он нулевой, я, очевидно, не могу использовать doc.documentID.

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Вы можете попробовать следующее:

DocumentReferance docRef = await 
Firestore.instance.collection('gameLevels').add(map);
print(docRef.documentID);

Поскольку метод add () создает новый документ и автоматически генерирует идентификатор, вам не нужно явно вызывать метод document ()

Или, если вы хотите использовать обратный вызов «then», попробуйте следующее:

  final collRef = Firestore.instance.collection('gameLevels');
  DocumentReferance docReferance = collRef.document();

  docReferance.setData(map).then((doc) {
    print('hop ${docReferance.documentID}');
  }).catchError((error) {
    print(error);
  });
0 голосов
/ 27 июня 2018

Если API-интерфейсы Dart похожи на другие платформы, метод document() должен возвращать ссылку на документ со свойством id со случайно сгенерированным идентификатором для документа, который собирается добавить в коллекцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...