Firebase:更新或创建

时间:2017-02-24 17:08:07

标签: javascript firebase firebase-realtime-database crud es6-promise

我正在使用Firebase和Node。

我想使用相同的方法更新对象或创建它,如果由于某种原因它不存在。

考虑以下方法

const firebaseSave = async function(data) {   
    const uid = firebase.auth().currentUser.uid

    const profilePath = `users/${uid}`
    const profileData = {
      name: data.name,
    }

    const userRef = firebaseDb.child(profilePath)
    await userRef.set(profileData)

  }

确定是否应该调用更新或设置的最佳和正确方法是什么?

感谢

2 个答案:

答案 0 :(得分:0)

我说要获取数据,检查是否有东西,如果没有默认为空对象 - 然后更新该对象。

类似的东西:

const valueSnapshot = await userRef.once('value');
const userValue = valueShapshot.exists() ? valueShapshot.val() : {};
const profileData = { ...userValue, name: data.name };
await userRef.set(profileData);

也就是说,假设您希望保留现有数据,并将任何新数据合并到其中。如果你不在乎覆盖任何东西,根本不需要检查。

答案 1 :(得分:0)

基本上与:

“设置”您将数据写入或替换为已定义的路径,例如消息/用户/

,您可以更新信息或创建信息。

查看以下内容:https://firebase.google.com/docs/database/admin/save-data