我想創建一個提供程序,這是我的應用程序和Firebase之間唯一的接口。
Im new to promises im sorry,if im doing something horrible wrong。我想要做的就是在每次某個值發生更改時,在我的FirebaseProvider之外調用功能。
FirebaseProvider:
Ionic Firebase承諾,每當價值發生變化時調用函數
onUpdateLobby(key){
return new Promise((resolve,reject)=>{
firebase.database().ref("/games").child(key).on('value',(snap)=>{
console.log("update");
if(snap) resolve(snap.val());
else reject(Error("onUpdateLobby Error"));
});
});
}
Testpage
this.db.onUpdateLobby('test').then((snap) => {
console.log(snap);
// do stuff with the data
}).catch((err) => {
console.log(err);
});
在我的TestPage中,我想Console.Log每次有事情發生變化時記錄整個對象,這甚至有可能嗎? (我想和火力地堡只是通過我的供應商進行溝通)改變值3次後
我的控制檯看起來像:
- 更新(從供應商)
- asdasdasd (從TestPage )
- 更新(來自提供者)
- 更新(從供應商)
- 更新(從供應商)
謝謝!
在TestPage你在哪裏運行該代碼?有一點需要注意的是承諾不像可觀察的那樣工作。你需要調用函數來獲得響應。 – SimplyComplexable