【发布时间】:2017-05-23 16:49:37
【问题描述】:
当用户进入页面时,我想检查用户是否已经将数据放入了 firebase 位置。我为此目的使用此代码:
(在提供者内:)
checkPath(): Promise<boolean> {
return new Promise((resolve, reject) => {
firebase.database().ref('/Data')
.child(firebase.auth().currentUser.uid).child("dataID")
.on('value', data => {
resolve(data.exists());
});
});
}
(在页面内:)
ionViewDidEnter() {
if(this.Provider.checkPath() === true) {
//Here I retrieve data from firebase
}
}
但是现在出现以下错误:
Type 'Promise<any>' is not assignable to type 'boolean'.
我的第一个问题是:我在使用 Promise 检查是否有来自用户的数据时是否正确?在我看来,需要一个承诺,否则页面会做它的事情,但可能是数据没有加载。
第二个问题是:如何从承诺返回中获取布尔值以检查数据是否在该位置?或者您有其他解决方案吗?
【问题讨论】:
标签: javascript angular firebase ionic-framework firebase-realtime-database