Firestore 中的“querySnapshot.forEach 不是函数”

Ivà*_*lez 9 javascript firebase google-cloud-firestore

我正在尝试对数据库进行查询,以获取子集合“角色”的所有文档以重定向到不同的路由。

let userRef1 = db.collection('users').doc(currentUser.uid).collection('roles')
let cont = 0
let rol = ''
let rolStatus = ''

userRef1.get().then(function(querySnapshot) {                                                                                                                               
  querySnapshot.forEach(function(doc) {                                                                                                                            

    cont++ 
    rol = doc.data().rol
    rolStatus = doc.data().status                                         
  });                                      
Run Code Online (Sandbox Code Playgroud)

控制台上的错误

Jef*_*Kim 1

我有一群用户,包括uid像你这样的用户。对于每个用户,它包含一个名为 的子集合friends

目前,我在我的项目中使用以下代码,没有任何问题。

module.exports = ({ functions, firestore }) => {
  return functions.firestore.document('/users/{uid}').onDelete((event) => {

    const userFriendsRef = getFriendsRef(firestore, uid);

     userFriendsRef.get().then(snapshot => {
       if (snapshot.docs.length === 0) {
         console.log(`User has no friend list.`);
         return;
      } else {
        snapshot.forEach(doc => {
          // call some func using doc.id
        });
      }
     }
  }
};

function getFriendsRef(firestore, uid) {
  return firestore.doc(`users/${uid}`).collection('friends');
}
Run Code Online (Sandbox Code Playgroud)

尝试修复您的代码

db.collection('users').doc(currentUser.uid).collection('roles')
Run Code Online (Sandbox Code Playgroud)

db.doc(`users/${currentUser.uid}`).collection('roles')
Run Code Online (Sandbox Code Playgroud)