2017-02-24 3 views
1

FirebaseとNodeを使用しています。Firebase:アップデートまたは作成

何らかの理由でオブジェクトが存在しない場合は、同じメソッドを使用してオブジェクトを更新するか作成したいと思います。

は、更新またはセットが呼び出されるべきかどうかを判断するための最良かつ正しい方法だろうどのような次のような方法

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) 

    } 

を考えてみましょうか?

おかげ

+1

'userRef'ですべてのデータを置き換えたい場合は、set()を呼び出します。いくつかのフィールドだけを更新し、他のフィールドは変更しない場合は、update()を使用します。 – Kato

+0

私はセットとアップデートのユースケースを理解していますが、レコードがすでに存在する場合は、アップデートを使用するかどうかを判断する方法があります。 – Lee

+1

update()を呼び出す必要はありません。試してみる。 – Kato

答えて

0

空のオブジェクトにデフォルト設定はありませんでした場合、私は、何かがあったかどうかを確認、データを取得すると言うだろう - そのオブジェクトを更新するには。以下のような

何か:

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

既存のデータを保持し、それに新しいデータをマージしたいと仮定すると、です。上書きを気にしない場合は、チェックは一切必要ありません。

関連する問題