过去几周左右我一直在研究Android应用程序,我一直在使用firebase作为我的后端。我从firebase读取/写入没有任何问题,但最近,所有addListenerForSingleValueEvent调用都没有被触发。我不确定为什么会突然停止阅读。我的数据库规则(用于测试目的)是
"rules": {
".read": true,
".write": true
}
,相关代码是
final DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
//searches database for user
//This "LISTENING" println triggers
System.out.println("LISTENING");
mDatabase.child("users").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//This print statement never prints
System.out.println("DATA SNAPSHOT");
for(DataSnapshot user : dataSnapshot.getChildren()){
for(DataSnapshot participant: user.getChildren()) {
//if we have found the participant name
if(participant.getKey().equalsIgnoreCase("Participant Name")){
System.out.println(participant.getValue().toString().trim());
}
}
}
Intent intent = new Intent(getApplicationContext(),MainActivity.class);
startActivity(intent);
}
@Override
public void onCancelled(DatabaseError databaseError) {
System.out.println("Error");
}
});
我还有其他几个addListenerForSingleValueEvent调用(在结构上类似,所以为了简洁起见,我不会在这里发布)直到大约2小时前工作正常。会发生什么事?这可能是firebase本身的问题吗?我的代码中有什么东西我可以忽略吗?
答案 0 :(得分:0)
我最终通过切换模拟器来解决这个问题。我不确定究竟是什么问题,但这对我有用
答案 1 :(得分:0)
这里遇到同样的问题,但我正在用手机测试(huawei y560-l01)。
编辑:
我解决了卸载应用程序,取消设备,重新启动设备以及再次连接和运行代码的问题。
答案 2 :(得分:0)
我发现智能手机上的google play服务版本(可以参考:google-play-services.en.uptodown.com/android/old)需要匹配依赖项中声明的firebase版本。它不仅可以在模拟器上运行,还可以在设备上运行(Samsung J7)。