从firebase onchange返回observable
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从firebase onchange返回observable相关的知识,希望对你有一定的参考价值。
你究竟如何从firebase中的on-change函数返回一个observable(ex type User)。通常你可以做一个。然后这个功能在.on里面,所以我不知道如何从那里得到一个可观察的。
注意:我可以设置(that.user);在我的可观察内部,但随后我的应用程序启动时,我的observable将为null。因此,理想情况下,您将设置您的observable等于以下方法返回
this.fire.database().ref('users/' + firebaseUser.uid)
.on('value', function (snapshot) {
if (snapshot.val()) {
that.user = snapshot.val();
return of(that.user);
}
});
答案
你不能像Doug Stevenson所说的那样为方法返回一个值。你真正想要做的是使用回调。例如:
public interface ResultsListener{
public void onResult(User user);
public void onFailed();
}
public void makeFirebaseCall(ResultsListener listener) {
this.fire.database().ref('users/' + firebaseUser.uid)
.on('value', function (snapshot) {
if (snapshot.val()) {
that.user = snapshot.val();
listener.onResult(that.user);
}
});
}
当您调用makeFirebaseCall()时,您可以执行以下操作:
makeFirebaseCall(new ResultsListener() {
@override
void onResult(User user) {
// do something with user
}
@override
void onFailed() {
// something failed
}
});
希望这有帮助!
以上是关于从firebase onchange返回observable的主要内容,如果未能解决你的问题,请参考以下文章