Как скопировать данные между коллекциями в FireStore? - PullRequest
0 голосов
/ 02 мая 2020

У меня есть две коллекции проверок и пользователей.
Я хочу получить данные документа из проверки и скопировать их пользователям.

Моя база данных пожарного хранилища имеет вид:

Проверка:

enter image description here

Пользователи:

enter image description here

void copyData() {
    final databaseReference = Firestore.instance;
    var docref = databaseReference.collection('verification').document("1604051013");
    docref.get().then((doc) {
      if (doc.exists) {
        print("Document Data " + doc.data.toString());
        databaseReference.collection("users").document("1").setData({
          'userName': doc['userName'],
        });
        print(doc['userName']);
      } else {
        print("Error in firestore");
      }
    });
  }

Над кодом напечатаны значения хорошо, но не устанавливает значения в коллекции пользователей.

1 Ответ

0 голосов
/ 03 мая 2020

Похоже, что вы пытаетесь получить доступ к данным документа на снимке документа, в этой строке:

'userName': doc['userName'],

Должно быть:

'userName': doc.data['userName'],

Окончательный код, также с переименованным var в усилить это снимок а не данные:

void copyData() {
    final databaseReference = Firestore.instance;
    var docref = databaseReference.collection('verification').document("1604051013");
    docref.get().then((docSnapshot) {
      if (docSnapshot.exists) {
        print("Document Data " + docSnapshot.data.toString());
        databaseReference.collection("users").document("1").setData({
          'userName': docSnapshot.data['userName'],
        });
        print(docSnapshot.data['userName']);
      } else {
        print("Error in firestore");
      }
    });
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...