2016-12-06 45 views
1

私のデータはデータベース内のデータのみを更新するため、新しいデータを挿入するのではなく、データをfirebaseに保存する際に問題があります。つまり、新しいユーザーを作成し、firebaseでこのデータをフェッチしようとすると、このエラーが表示されます。Firebaseにデータが存在するかどうかを確認する方法

FIREBASE WARNING: Exception was thrown by user callback. TypeError: Can not convert undefined or null to object.

function writeUserData(userId, data) { 
    var key = Object.keys(data)[0]; 
    var values = Object.values(data)[0]; 
    console.log(values); 

    firebase.database().ref('users/' + userId + '/' + jsData.topicId + '/' + key).set({ 
      topic_log: values 
     }); 
    } 

答えて

2

右ここにこのコードを見てみましょう:

function go() { 
    var userId = prompt('Username?', 'Guest'); 
    checkIfUserExists(userId); 
} 

var USERS_LOCATION = 'https://SampleChat.firebaseIO-demo.com/users'; 

function userExistsCallback(userId, exists) { 
    if (exists) { 
    alert('user ' + userId + ' exists!'); 
    } else { 
    alert('user ' + userId + ' does not exist!'); 
    } 
} 

// Tests to see if /users/<userId> has any data. 
function checkIfUserExists(userId) { 
    var usersRef = new Firebase(USERS_LOCATION); 
    usersRef.child(userId).once('value', function(snapshot) { 
    var exists = (snapshot.val() !== null); 
    userExistsCallback(userId, exists); 
    }); 
} 
+0

おかげで、あなたのコメントは私をたくさん –

+0

グレート答えを助けます!ありがとう – KLTR

1

あなたはデータをチェックするために、データのスナップショットのexists()方法を使用することができます。例えば

var userRef = firebase.database().ref('users/' + userId); 
userRef.once('value', function(snapshot) { 
    if (snapshot.exists){ 
     console.log('user exists'); 
    } 
}); 
関連する問題