【发布时间】:2016-06-08 12:58:51
【问题描述】:
当我的应用程序启动时,我会在我的 Firebase 数据库中检查当前用户的详细信息(为此我存储了它的 uid)。
我将 addListenerForSingleValueEvent 附加到用户的 ref 以读取它的数据。
我的问题是,有时它不返回任何值,既不成功也不失败。
只有清除应用程序的数据才能解决,但当然会强制用户重新登录。
我在 SO 上阅读了一些帖子,但没有找到任何解决方案。
这是我的一段代码:
DatabaseReference newUser =
FirebaseDatabase.getInstance().getReference("users/"+uid);
newUser.addListenerForSingleValueEvent(new ValueEventListener()
@Override
public void onDataChange(DataSnapshot snapshot) {}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
【问题讨论】:
-
快速提问:您是否使用身份验证?您是否在同一个应用程序中访问多个数据库(或者您以前使用同一个应用程序访问不同的数据库)?
-
是的,我正在使用身份验证。我只访问一个数据库。顺便说一句,即使重新启动设备也没有解决它。
-
这个问题是在我开始使用新的SDK之后才开始出现的。
-
我可以结合这个问题的解决方案来重现这个问题:stackoverflow.com/questions/31670234/… 所以如果我创建一个包含单值侦听器的值侦听器,单值侦听器永远不会返回任何数据,所以一切都冻结了。这个@FrankvanPuffelen 有什么解决方案吗?我做错了吗?如果您愿意,可以在 PM 上复制开源项目。
-
我今天遇到了同样的问题,我通过注销当前用户来临时修复它,即使我从数据库中删除它仍然在应用程序中可用
标签: android firebase firebase-realtime-database