2017-10-28 32 views
0

我正在开发一个使用javascript的离子框架的firebase应用程序。我所有的数据库写入操作都能正常工作,但无论我尝试什么,我都无法读取数据。firebase database.ref()。一次回调从未调用过(javascript,ionic)

我有一个函数内部:

setCompanyAndTitle(){ 
    let uid = firebase.auth().currentUser.uid; 
    let userRef = this.database.ref('users/'+uid); 
    userRef.once('value').then(function(user){ 
     alert("pls " + user.displayName); 
    //NEVER CALLED !!!!!!!! 
    }).catch(function(error){ 
     var errorMessage = error.message; 
     alert(errorMessage); 
    //NEVER CALLED !!!!!!!!! 
    }); 

    } 

我的火力点被初始化像这样:

firebase.initializeApp({ 
    apiKey: "xxxxxxxxxxxxxxxxxxxxxxx", 
    authDomain: "xxxxxxxxxxx.firebaseapp.com", 
    databaseURL: "xxxxxxxxxx.firebaseio.com", 
    projectId: "xxxxxxxxx", 
    storageBucket: "xxxxxxxxxx.appspot.com", 
    messagingSenderId: "000000000" 
    }); 

我不能得到一次()函数来进行回调,不管我怎么努力。

+0

是否定义了'this.database'?如果不是,请尝试用'firebase.database()'替换它。 –

回答

0

尝试将let userRef = this.database.ref('users/'+uid);更改为let userRef = firebase.database().ref('users/'+uid);。此外,您应该访问您的回复,如下所示:

userRef.once('value').then(function(userSnapshot){ 
     cont user = userSnapshot.val() 
     alert("pls " + user.displayName); 
    }) 
+0

谢谢你的回复。这个数据库在类声明中被定义为firebase.database()。我尝试了一个const用户,但回调函数仍然不会被调用... –