firebase - 从 firebase onchange 返回 observable
问题描述
你到底是如何从 firebase 中的 on-change 函数返回一个可观察的(前类型用户)。通常你可以做一个 .then 但这个函数在 .on 里面所以我不知道如何从那里得到一个 observable 。
注意:我可以设置 of(that.user); 到那里的我的可观察对象,但是当我的应用程序启动时,我的可观察对象将为空。因此,理想情况下,您将 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
}
});
希望这会有所帮助!
推荐阅读
- java - 无法通过 SSH 执行 Cutrite 命令
- python - 按多个条件删除行
- javascript - Javascript向对象键添加值:值将其值1加1
- linux - 构建期间无法在 RPI 上运行 Dockerfile 中的任何命令
- azure-active-directory - Azure AD 提供 refresh_token 即使我没有请求并且权限没有offline_access
- javascript - 如何在 https node.js 中使用 while 循环
- javascript - 将 tiktok 视频嵌入 Angular 7 的问题
- python - Spacy 3 对命名实体识别的置信度得分
- asp.net-core - 令牌端点的 HTTP 请求无效 - IdentityServer4 ASP.Net Core 5.0
- flutter - 如何在 ElevatedButton 中使用 textTheme?