Firebase既不会调用onDataChange,也不会调用onCancelled,除非我注销并重新登录

时间:2018-04-13 17:51:40

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

您好我遇到了一个奇怪的问题,有时在我的手机中构建我的应用程序既不调用onDataChange也不调用onCancelled。

我尝试解决问题的方法是:

  1. 确保所有代码都正确无误。我花了大部分时间在这里,但是当我退出并重新登录时,我意识到代码必须正常工作。
  2. 确保用户已通过身份验证,否则会将其发送到登录屏幕。由于requesteEmail是由FirebaseAuth.getInstance()。getCurrentUser()。getEmail()初始化的,所以我假设用户仍在进行身份验证。
  3. 确保我的读写规则全部打开

  4. 尝试使用addValueEventListener和addListenerForSingleValueEvent

  5. 以下是我的代码示例:

     private void UpdateFriendList(){
    
        String passing = "Users/"+requesteEmail+"/Friends";
        DatabaseReference myRef = database.getReference("Users/"+requesteEmail+"/Friends");
        Log.d("TAGL","my Refs VAlue is : "+ myRef.toString());
        Log.d("TAGL","outside THE PLACE above passing: "+ passing);
        myRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                Log.d("TAGL","IN the datachange");
                populateFirendsLists(dataSnapshot);
            }
            @Override
            public void onCancelled(DatabaseError databaseError) {
                Log.d("TAGL","EROR ");
            }
        });
        Log.d("TAGL","outside THE PLACE below");
    }
    

    这是带有括号的logcat替换某些字符串以保护隐私

    我的Refs VAlue是:( app path)/ Users /(用户路径)/ Friends

    在THE PLACE以上传递:用户/(路径)/朋友

    在下面的地方

    当我退出并重新登录时,它会调用日志语句和函数。

    奇怪的是,重新启动应用程序并没有改变任何事情。因此,如果它的工作和我重新启动应用程序它将继续工作。但如果它没有重新启动它也不会解决它。也许它是一个Android工作室的东西?但我听起来不对。

    这个奇怪的错误似乎只发生在我登录并构建和运行应用程序时。然而,构建和运行应用程序并不总是会发生这种故障,有时候会发生。

    你们有没有想过为什么有时会发生这种情况?我不确定什么会阻止onDataChange和onCancelled都不被调用。

0 个答案:

没有答案