У меня есть облачная функция, которая перебирает массив uids, а затем создает запись для каждого. Нормальные записи происходят почти мгновенно, но здесь есть большое отставание, прежде чем они появятся.
Я пробовал на массив разных размеров. Массив с одним или двумя uid быстрее, но все равно имеет задержку около 5-6 секунд.
exports.addPostings = functions.firestore
.document('posts/{postID}')
.onCreate((snap, context) => {
const newValue = snap.data();
var uid = newValue.author.uid;
let followers = [];
var feedRef = db.collection("feedItems");
var authorRef = db.collection("users").doc(newValue.author.uid);
authorRef.get().then((doc) => {
let data = doc.data();
let post_count = data.postCount;
authorRef.update({
postCount: Number(post_count) + 1
}).then(() => {
authorRef.collection('followers').doc('content').get().then((doc) => {
let data = doc.data();
if (typeof data.uids != 'undefined') {
followers = data.uids;
}
}).then(() => {
followers.forEach((fol) => {
feedRef.add({
createdAt: admin.firestore.FieldValue.serverTimestamp(), uid: fol, creatorUid: uid,
postId: context.params.postID, isResharedPost: false, wasViewed: false,
wasReshared: false, wasLiked: false, wasDirectlyShared: false
});
});
});
});
});
});