-1
我在service.TS文件中創建了一個查詢,該查詢顯示基於登錄用戶的項目「狀態」 UID:使用Firebase,firebase.auth()。currentUser即使在記錄中也爲空值
getLists(): FirebaseListObservable<any> {
firebase.auth().onAuthStateChanged(function(user) {
if (user) {console.log("blah", firebase.auth().currentUser.uid)
// User is signed in.
}
});
return this.db.list('/foods', {
query: {
orderByChild: 'state/'+firebase.auth().currentUser.uid+'/state',
equalTo: 'listed'
}
});
}
使用此查詢,我收到一條錯誤:
未捕獲的(在承諾):類型錯誤:null不是一個對象(計算'WEBPACK_IMPORTED_MODULE_2_firebase_app 「權威性」 .curren tUser.uid')。
使用{console.log("blah", firebase.auth().currentUser.uid)
,你可以在上面看到,正確顯示UID在日誌中,確認該用戶登錄。
我不知道這是否是相關的,但此查詢是由頁面的叫主要TS文件與:
ngOnInit() {
this.moviesSvc.getLists()
.subscribe(lists => {console.log(lists); console.log("UID", firebase.auth().currentUser.uid); this.lists = lists})
}
我需要做什麼才能正確地將UID傳遞給查詢?
這給了我一個錯誤顯示:_A函數聲明類型既不是「無效'也不'任何'必須返回一個值_。我也收到錯誤:_TypeError:undefined不是一個對象(評估'this.db.list')_和_Uncaught(在promise中):TypeError:undefined不是一個對象(評估'this.moviesSvc.getLists() 。訂閱')_。 – cfoster5
@ cfoster5更新了代碼,內部回調中的'this'會有所不同,因此將其緩存爲self並使用它.. –
嘗試此操作仍然會出現上面列出的錯誤。 – cfoster5