从firebase onchange可观察到的返回
究竟如何从firebase中的on change函数返回ex-type用户的observable。通常你可以做一个.然后,但是这个函数在.on里面,所以我不知道如何从那里得到一个可观测的 注:我可以只设置该用户;到我的可观察到的里面,但是当我的应用程序启动时,我的可观察到的将是空的。因此,理想情况下,您可以将您的observable设置为以下方法返回值从firebase onchange可观察到的返回,firebase,firebase-realtime-database,observable,Firebase,Firebase Realtime Database,Observable,究竟如何从firebase中的on change函数返回ex-type用户的observable。通常你可以做一个.然后,但是这个函数在.on里面,所以我不知道如何从那里得到一个可观测的 注:我可以只设置该用户;到我的可观察到的里面,但是当我的应用程序启动时,我的可观察到的将是空的。因此,理想情况下,您可以将您的observable设置为以下方法返回值 this.fire.database().ref('users/' + firebaseUser.uid) .on('value
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
}
});
希望这有帮助 在侦听器上,无法返回任何内容。他们只是倾听变化。无论你想完成什么,我认为你走错了方向。