2016-12-06 2 views
1

Ich habe ein Problem beim Speichern von Daten in Firebase, da meine Daten nur die bereits in der Datenbank vorhandenen Daten aktualisieren und keine neuen Daten einfügen. Das ist, wenn ich einen neuen Benutzer erstelle und es eine Übung löst, wenn ich versuche, diese Daten in der Firebase zu holen, gibt es mir diesen Fehler zurück.So überprüfen Sie, ob Daten in Firebase vorhanden sind

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 
     }); 
    } 

Antwort

2

werfen Sie einen Blick auf diesen Code hier:

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

Danke, helfen Sie mir Ihren Kommentar viel –

+0

Große Antwort! Vielen Dank – KLTR

1

Sie die exists() Methode des Daten Snapshot verwenden können für Daten zu überprüfen.

Zum Beispiel:

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