如何验证Firebase中是否存在数据

时间:2016-12-06 11:35:08

标签: javascript json firebase

我在将数据保存到firebase时遇到问题,因为我的数据只更新数据库中已有的数据,因此不会插入新数据。那是当我创建一个新用户并在尝试在firebase中获取此数据时它解决了一个练习,它返回了我的错误。

  

FIREBASE警告:用户回调引发了异常。 TypeError:无法将undefined或null转换为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 个答案:

答案 0 :(得分: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);
  });
}

答案 1 :(得分:1)

您可以使用数据快照的exists()方法检查数据。

例如:

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