Данные чтения-записи Firebase Cloud Firestore

Я пытаюсь зарегистрироваться и сохранить информацию о пользователе в firestore. Операция сохранения в порядке, но я хочу найти эту информацию, но ничего не происходит. Вот мой код

Подписаться

    firestore
  .collection("users")
  .doc(user.userId)
  .collection("profile")
  .add({ ...user })
  .then(() => {
    auth.onAuthStateChanged((u) => {
      if (u) {
        u.updateProfile({
          displayName: user.displayName,
        });
      }
    });
  });

Получить данные всех пользователей

  firestore
.collection("users")
.get()
.then(function (querySnapshot) {
  querySnapshot.forEach(function (doc) {
    //doc.data() is never undefined for query doc snapshots
    console.log(doc.id, " => ", doc.data());
  });
});

person Huseyin Akcicek    schedule 25.08.2020    source источник


Ответы (1)


Вы сможете добиться этого, используя код, аналогичный приведенному ниже. Он очень похож на ваш, но с некоторыми отличиями, где мы разделяем ссылки на базу данных и позволяем querySnapshot выполнять итерацию самостоятельно, поэтому данные могут быть возвращены. Обычно я использую этот формат для возврата данных из коллекций.

var db = admin.firestore()
var usersReference = db.collection("users");

usersReference.get().then((querySnapshot) => {
    querySnapshot.forEach((userDoc) => {
        console.log(userDoc.id)
        var userDocData = userDoc.data()
        console.dir(userDocData)
    })
})

Это должно сработать, поэтому, если он ничего не возвращает, возможно, ваша операция сохранения работает неправильно. Это вернет как идентификатор пользователя, так и все данные из него.

person gso_gabriel    schedule 26.08.2020
comment
Спасибо за поддержку. Вы правы, моя операция сохранения не работает должным образом. - person Huseyin Akcicek; 06.10.2020