Java firebase addvalueeventlistener未在一个设备中触发

Java firebase addvalueeventlistener未在一个设备中触发,java,android,firebase,firebase-realtime-database,firebase-authentication,Java,Android,Firebase,Firebase Realtime Database,Firebase Authentication,我的一个特定设备有问题(我的主要设备是galaxy s7) 如下所述: addvalueeventlistener不会触发,正如我建议的那样,我使用以下命令检查了是否有连接: 而我实际上并没有联系 问题是,一个是正在开发的设备,它工作得很好,另一个不是 我错过了什么 代码如下: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); localCountryDB = ((

我的一个特定设备有问题(我的主要设备是galaxy s7)

如下所述:

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

而我实际上并没有联系

问题是,一个是正在开发的设备,它工作得很好,另一个不是

我错过了什么

代码如下:

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";
}
});
试试这个

  • 将internet权限添加到清单

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

试试这个

  • 将internet权限添加到清单

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

    • 我发现了问题

      问题在于:

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

      mAuth.signout()
      
      一旦我这样做了,连接就再次“连接”,ValueEventListener将触发

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

      我发现了这个问题

      问题在于:

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

      mAuth.signout()
      
      一旦我这样做了,连接就再次“连接”,ValueEventListener将触发


      问题是我不知道如何捕捉这个bug,因为触发器不会触发。

      你能展示一个完整的、最少的代码样本来展示你看到的问题吗?为什么是unvote@DougStevenson?代码附在附件中。你能展示一个完整的、最少的代码样本来展示你所看到的问题吗?为什么是unnote@DougStevenson?代码被查封了你真的有网络连接吗?在FirebaseDatabase.getInstance()行上显示您的代码i do、wifi和data+,当我调试时,我可以看到Firebase数据库URL@SamsadCV检查数据库安全规则您是否实际连接了internet?在FirebaseDatabase.getInstance()行上显示您的代码i do、wifi和data+,当我调试时,我可以看到Firebase数据库URL@SamsadCV检查数据库安全规则