【发布时间】:2017-12-22 05:09:16
【问题描述】:
我想创建一个提供程序,它是我的应用程序和 Firebase 之间的唯一接口。
如果我做错了什么可怕的事情,我很抱歉。我想要做的是每次某个值发生变化时调用一个函数在我的 FirebaseProvider 之外。
FirebaseProvider:
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"));
});
});
}
测试页
this.db.onUpdateLobby('test').then((snap) => {
console.log(snap);
// do stuff with the data
}).catch((err) => {
console.log(err);
});
在我的 TestPage 中,我想在每次发生更改时使用 Console.Log 整个对象,这甚至可能吗? (我想通过我的 Provider 与 Firebase 通信)
更改值 3 次后我的控制台如下所示:
- 更新(来自提供者)
- asdasdasd (来自 TestPage)
- 更新(来自提供者)
- 更新(来自提供者)
- 更新(来自提供者)
谢谢!
【问题讨论】:
-
您在 TestPage 的哪个位置运行此代码?需要注意的一件事是,promise 不像 observables 那样工作。您需要调用该函数以获取响应。
标签: angular typescript firebase firebase-realtime-database ionic2