Я вызываю функцию firestore при создании триггеров, которая добавляет данные в коллекцию из другой коллекции, но проблема в том, что я сохраняю данные в переменной querysnapshot, но функция не может выполнить итерацию querysnapshot, она даже не go внутри querysnapshot.forEach. Когда я тестировал локально, он работал, но не на сервере. Я действительно застрял здесь. Если кто-то может помочь, ответьте
EDIT
У меня есть данные в коллекции userPosts, но я не получаю никаких документов в querysnapshot, он возвращает 0 документов, я не понимаю почему?
Я прикрепил результаты своей консоли, а также данные Firestore и обновил код.
Журнал функции Firebase
Firestore данные 1
Данные Firestore 2
Данные Firestore 3
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
admin.initializeApp();
const firestore = admin.firestore();
const settings = { timestampsInSnapshots: true };
firestore.settings(settings);
export const onCreateFollower = functions.firestore
.document("/followers/{userId}/userFollowers/{followerId}")
.onCreate(async (snapshot, context) => {
console.log("Follower Created", snapshot.id);
const userId = context.params.userId;
console.log("User ID", userId);
const followerId = context.params.followerId;
console.log("Follower ID", followerId);
// 1) Create followed users posts ref
const followedUserPostsRef = firestore
.collection("posts")
.doc(userId)
.collection("userPosts");
// 2) Create following user's timeline ref
const timelinePostsRef = firestore
.collection("timeline")
.doc(followerId)
.collection("timelinePosts");
// 3) Get followed users posts
followedUserPostsRef.get().then(querySnapshot => {
console.log(`Inside QuerySnapshot with ${querySnapshot.size} docs`)
querySnapshot.forEach(doc => {
console.log("Inside ForEach");
if (doc.exists) {
const postId = doc.id;
console.log(postId)
const postData = doc.data();
console.log(postData) //Q2g2EutTRSOr9GPmeBlkt0ZZ40m2
timelinePostsRef.doc(postId).set(postData).then(() => {
console.log("Data successfully Added.")
}).catch((err) => {
console.log("Could not set the Data");
console.log(err);
});
}
});
}).catch(err=>{
console.log(err);
});
});
журнал Querysnapshot
QuerySnapshot {
_query:
CollectionReference {
_firestore:
Firestore {
_settings: [Object],
_settingsFrozen: true,
_serializer: [Object],
_projectId: 'test',
registeredListenersCount: 0,
bulkWritersCount: 0,
_backoffSettings: [Object],
_clientPool: [Object] },
_queryOptions:
QueryOptions {
parentPath: [Object],
collectionId: 'userPosts',
converter: [Object],
allDescendants: false,
fieldFilters: [],
fieldOrders: [],
startAt: undefined,
endAt: undefined,
limit: undefined,
limitType: undefined,
offset: undefined,
projection: undefined },
_serializer:
Serializer {
createReference: [Function],
createInteger: [Function],
allowUndefined: false },
_allowUndefined: false },
_readTime: undefined,
_size: 0,
_materializedDocs: null,
_materializedChanges: null,
_docs: [Function],
_changes: [Function] }