цикл forEach для получения базы данных - PullRequest
1 голос
/ 20 июня 2019

У меня есть код:

const { uid } = firebaseConfig.auth().currentUser;
const ref = db.collection('categories').doc(uid);

ref.onSnapshot(
  snapshot => {
    snapshot.forEach(item => console.log(item.data()));
  },
  err => {
    console.log(`Encountered error: ${err}`);
  }
);              

и я получил ошибку: Uncaught TypeError: snapshot.forEach is not a function Где я ошибся? версия Firebase: ^6.2.0

Ответы [ 2 ]

0 голосов
/ 20 июня 2019

Поскольку ваш ref указывает на определенный документ, ваш обратный вызов onSnapshot будет вызываться с одним DocumentSnapshot, который не имеет forEach().

Если вы присоедините целую коллекцию или запрос, вы получите QuerySnapshot, что имеет метод forEach.


Если вы действительно хотите получить QuerySnapshot для одного документа, идентификатор которого вы знаете, вы можете использовать запрос по идентификатору документа:

const ref = db.collection('categories').where(firebase.firestore.FieldPath.documentId(), '==', uid)
0 голосов
/ 20 июня 2019

Попробуйте log снимок и проверьте, является ли он массивом или нет. Возможно, вы ищете это

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