Я не пробовал вашу облачную функцию, но проблема, скорее всего, связана с тем, что с
var instanceDocRef = firestore.collection("utils").doc(userDoc.data().instance);
return transaction.get(instanceDocRef).then((snapshot) => {})
вы получаете DocumentSnapshot
, а не QuerySnapshot
как вы получаете с
var userDocRef = firestore.collection("users").where('uid', '==', user.uid).limit(1);
...
return transaction.get(userDocRef).then((snapshot) => {
A DocumentSnapshot
не имеет метода forEach()
.Вы должны сделать следующее, напрямую вызвав метод data()
DocumentSnapshot
:
var instanceDocRef = firestore.collection("utils").doc(userDoc.data().instance);
return transaction.get(instanceDocRef).then((snapshot) => {
var newUserSize = snapshot.data().user_size - 1;
...
})