Я пытаюсь записать транзакцию, которая сначала запрашивает документы по documentId из списка идентификаторов, а затем делает некоторые обновления.
Я получаю сообщение об ошибке:
Соответствующий значение для FieldPath.documentId () должно быть строкой или DocumentReference.
Например:
const indexArray = [..list of doc ids...]
const personQueryRef = db.collection("person").where(admin.firestore.FieldPath.documentId(), "in", indexArray)
return db.runTransaction(transaction => {
return transaction.get(personQueryRef).then(personQuery => {
return personQuery.forEach(personRef => {
transaction.update(personRef, { ...update values here })
//more updates etc
})
})
})
Я хочу сделать это в onCreate
и onUpdate
вызывать. Есть ли другой подход, который я должен использовать?
Обновление
Ошибка по-прежнему сохраняется, когда не используется транзакция, поэтому это не связано с проблемой.
Проблема не возникает при запросе .where(admin.firestore.FieldPath.documentId(), "==", "just_one_doc_id")
. Итак, проблема в использовании FieldPath.documentId()
и in
.