Firebase - необходимо найти идентификатор документа, используя «где» - PullRequest
0 голосов
/ 18 марта 2020

Мне нужно найти метку документа (имя / идентификатор?) Документа, который я получаю с помощью .where (...)

Что я делаю не так?

   // updates dev team in the db
function updateDevTeam(devToUpdate, update) { // devToUpdate = id of dev, fieldToUpdate = goal, name, or team_id, update = value
    var devToUpdateDocument = fb.db.collection('dev').where('id', '==', devToUpdate) //how do I set this to the document id(/name/path?)
    fb.db.collection('dev').doc(devToUpdateDocument).update({ team_id: update })
}

1 Ответ

0 голосов
/ 18 марта 2020

Похоже, вы пытаетесь обновить все документы, которые могут возникнуть в результате запроса. В Firestore нет функции «обновить где», например SQL.

Невозможно обновить документ, если у вас нет ссылки на этот документ. Чтобы обновить все документы, соответствующие запросу, необходимо:

  1. Фактически выполнить запрос
  2. Итерировать все документы в результате
    • Получить ссылку на документ
    • Обновлять его индивидуально
// Your query object
const query = fb.db.collection('dev').where('id', '==', devToUpdate)
// now actually perform the query to get a QuerySnapshot
query.get().then(qsnapshot => {
    // then iterate each document in the result set to update it
    qsnapshot.docs.forEach(dsnapshot => {
        // get a reference to the document in the DocumentSnapshot
        const ref = dsnapshot.ref
        // and update it
        ref.update(...)
    })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...