【问题标题】:firebase addvalueeventlistener not being triggered in one devicefirebase addvalueeventlistener 未在一台设备中触发
【发布时间】:2017-08-23 06:20:24
【问题描述】:

我在使用一台特定设备时遇到问题(我的主要设备是 Galaxy s7)

如此处所述: Firebase addValueEventListener not being triggered

addvalueeventlistener 不会触发,正如我建议的那样,我使用它检查了我是否有连接:

https://firebase.google.com/docs/database/android/offline-capabilities#section-connection-state

我实际上没有连接

问题在于,其中一个开发设备运行良好,而另一个则不行。

我在这里错过了什么?

这是代码:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
localCountryDB = ((GlobalState) this.getApplication()).getCountry();
mAuth = FirebaseAuth.getInstance();
mFirebaseDatabase = FirebaseDatabase.getInstance();
myRef = mFirebaseDatabase.getReference().child(localCountryDB);
FirebaseUser user = mAuth.getCurrentUser();
if (mAuth.getCurrentUser()!=null)
userID = user.getUid();

DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected");
connectedRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
boolean connected = snapshot.getValue(Boolean.class);
if (connected) {
System.out.println("connected");
} else {
System.out.println("not connected");
}
}

@Override
public void onCancelled(DatabaseError error) {
System.err.println("Listener was cancelled");
}
});

valueEventListener = myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
getUserData(dataSnapshot);
}



@Override
public void onCancelled(DatabaseError databaseError) {

String Hello;
Hello="a";
}
});

【问题讨论】:

  • 您能否展示一个完整且最少的代码示例来展示您所遇到的问题?
  • 为什么不投票@DougStevenson?附上代码

标签: java android firebase firebase-realtime-database firebase-authentication


【解决方案1】:

我发现了问题

问题是:

mAuth.getCurrentUser()

实际上返回了一个用户,一个已经从身份验证数据中删除的旧用户,所以我不得不

mAuth.signout()

一旦我这样做了,连接就会再次“连接”并且 ValueEventListener 触发

问题是我不知道如何捕捉这个错误,因为触发器没有触发。

【讨论】:

    【解决方案2】:

    试试这个

    • 将互联网权限添加到清单

    • 将 Firebase 数据库安全规则读取设置为 true

    【讨论】:

    • 你真的有互联网连接吗?显示您的代码
    • 我做,wifi & data + 在 FirebaseDatabase.getInstance() 线上,我在调试时可以看到 Firebase 数据库 URL
    • @SamsadCV 检查数据库安全规则
    猜你喜欢
    • 2022-11-11
    • 2021-06-26
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多