Зависит от того, есть ли у вас ссылка на запись во внешнем интерфейсе перед обновлением или нет (независимо от того, извлекли ли вы ее перед тем, как пытаться обновить).
Но, как правило, у вас есть два варианта
- Вы можете сохранить ссылку на ключ в виде поля «id» на объекте.Чтобы достичь этого, вам нужно выполнить двухэтапный процесс при создании записи на первом месте
// Creates a new record in DB and returns it to you. Now you can get the "key"
const newRecord = firebase.database().ref('TABLE_NAME_REF').push();
newRecord.set({
id: newRecord.key
...
});
Это замечательно, если вы выбираете список записей на внешнем интерфейсе, а затем хотите обновить один изих.Тогда вы можете просто построить путь ссылки следующим образом
fb.child('Article/' + record.id ).update(data); // where record is the prefetched thing
Сначала вам нужно найти элемент на основе его полей.И как только у вас есть, вы можете обновить его прямо сейчас.Чтобы достичь этого, вы можете просто сделать что-то вроде:
firebase.database()
.ref('TABLE_NAME_REF') // let's say 'Article'
.orderByChild('RECORD_KEY') // Let's say 'author'
.equalTo('KEY_VALUE') // let's say 'zoranm'
.limitToFirst(1)
.once("value")
.then(res => {
// You need to loop, it always returns an array
res.forEach(record => {
console.log(record.key); // Here you get access to the "key"
fb.child('Article/' + record.key ).update(data); // This is your code pasted here
})
})