firebase database.ref()。一次回调从未调用过(javascript,ionic)
问题描述:
我正在开发一个使用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"
});
我不能得到一次()函数来进行回调,不管我怎么努力。
答
尝试将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用户,但回调函数仍然不会被调用... –
是否定义了'this.database'?如果不是,请尝试用'firebase.database()'替换它。 –