2017-10-28 33 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用戶,但回調函數仍然不會被調用... –