Я новичок в Firebase. У меня есть данные в базе данных реального времени Firebase со следующей структурой. Мое требование - добавить новое поле в несколько (выбранных) записей, представленных в разделе «пользователь».
Исходные данные
db—>user
—pushId_1 (Auto Generated via push command)
name: user1
pushId_2
name: user2
Обязательные окончательные данные с добавлением еще одного поля («newField»)
db—>user
—pushId_1
name: user1
newField: sample data
pushId_2
name: user2
newField: sample data
Я написал следующий код для этого.
exports.sampleFunction = functions.database.ref('/db/user/{pushId}/')
.onCreate((snap, context) => {
console.log('onCreate called with snapshot id = ' + snap.key);
admin.database().ref('/db/user/').once('value').then(snapshot => {
if (snapshot.numChildren() > 1) {
var updates = {};
var count = 0;
snapshot.forEach((child) => {
if (!child.hasChild('newField') && count < 2) {
updates[child.key] = { newField: 'sample data' };
count++;
}
});
//return snapshot.ref.set(updates); //set is also giving same result.
return snapshot.ref.update(updates);
}
return null;
}).catch(error => {
console.error("error in fetching data from db." + error);
});
return null;
});
Проблема в том, что этот код удаляет существующее поле «name» и заменяет его на «newField».
Не могли бы вы помочь мне в добавлении этого нового поля в данные без удаления существующих полей.
Спасибо