Кто-нибудь знает, есть ли способ перебора в документах родительских коллекций? Я пытаюсь ie получить все документы из моей родительской коллекции, но querySnapshot кажется пустым, хотя это не так.
Мой путь к коллекции выглядит следующим образом:
parentCollection(comments)/docs/subCollection(comments)/docs
И что я пытаюсь сделать, это выполнять итерации в каждой подколлекции и их документах, и для этого мне нужно выполнять итерацию в каждом документе родительской коллекции, но когда я использую get (), он возвращает пустой querySnapshot.
Вот мой код:
return admin.firestore().collection("comments").get().then((querySnapshot) => {
console.log(querySnapshot);
querySnapshot.forEach((doc) => {
console.log(doc);
return doc.ref.collection("comments").get().then((querySnapshot2) => {
console.log(querySnapshot2);
querySnapshot2.forEach((doc2) => {
console.log(doc2.data());
})
return true;
});
});
return true;
});
Ps: я знаю, я не должен вкладывать обещание.
ОБНОВЛЕНИЕ
Вот что возвращает мой console.log, когда log querySnapshot.size
и querySnapshot.empty
:
вот весь код:
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();
exports.onUpdateUserUpdateComments = functions.firestore
.document("/users/{userId}")
.onUpdate(async (change, context) => {
const userId = context.params.userId;
const userUpdate = change.after.data();
const newPhotoUrl = userUpdate.photoUrl;
console.log("userId",userId);
console.log("newPhotoUrl",newPhotoUrl);
return admin.firestore().collection("comments").get().then((querySnapshot) => {
console.log(querySnapshot.size);
console.log(querySnapshot.empty);
querySnapshot.forEach((doc) => {
console.log(doc);
return doc.ref.collection("comments").get().then((querySnapshot2) => {
console.log(querySnapshot2);
querySnapshot2.forEach((doc2) => {
console.log(doc2.data());
})
return true;
});
});
return true;
});
});
После развертывания здесь выводится лог