2017-04-01 58 views
10

设备通过移动数据连接进行连接时,我遇到了Firebase身份验证问题。如果通过WiFi身份验证连接正常工作。通过移动数据进行Firebase匿名身份验证失败

我使用下面的代码进行认证:

signInAnonymously失败: com.google.firebase.FirebaseNetworkException:网络错误(例如通过移动数据连接时接收到的

public class MyAuthActivity extends Activity 
{ 
    protected FirebaseAuth auth; 
    protected FirebaseAuth.AuthStateListener authListener; 

    protected FirebaseUser user; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     auth = FirebaseAuth.getInstance(); 

     authListener = new FirebaseAuth.AuthStateListener() 
     { 
      @Override 
      public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) 
      { 
       user = firebaseAuth.getCurrentUser(); 
       if (user != null) 
       { 
        // User is signed in 
        Log.d("APP", "onAuthStateChanged:signed_in: " + user.getUid()); 
       } 
       else 
       { 
        // User is signed out 
        Log.d("APP", "onAuthStateChanged:signed_out"); 
       } 
      } 
     }; 
     auth.addAuthStateListener(authListener); 

     auth.signInAnonymously() 
       .addOnFailureListener(this, new OnFailureListener() 
       { 
        @Override 
        public void onFailure(@NonNull Exception e) 
        { 
         Log.w("APP", "signInAnonymously failure: ", e); 
        } 
       }) 
       .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() 
       { 
        @Override 
        public void onComplete(@NonNull Task<AuthResult> task) 
        { 
         Log.d("APP", "signInAnonymously:onComplete:" + task.isSuccessful()); 

         if (!task.isSuccessful()) 
         { 
          Log.w("APP", "signInAnonymously", task.getException()); 
         } 
        } 
       }); 


    } 
} 

错误如 超时,连接中断或无法访问的主机)。 at com.google.android.gms.internal.zzblv.zzce(Unknown Source) at com.google.android.gms.internal.zzbls $ zzj.zza(Unknown Source) at com.google.android.gms。 internal.zzbmd.zzcf(Unknown Source) at com.google.android.gms.internal.zzbmd $ zza.onFailure(Unknown Source) at com.google.android.gms.internal.zzbly $ zza.onTransact(Unknown Source ) 在android.os.Binder.execTransact(Binder.java:404) 在dalvik.system.NativeStart.run(本机方法)

有什么我可以做,以解决上述问题或了解更多信息了解真正导致问题的原因。

移动电话通过移动数据在其他方面效果良好,并成功访问Internet和Google Play商店。

火力地堡版本10.2.0,Android的API 19


一些额外的信息。以上认证的主要目的是针对Firebase数据库的访问认证。

如果我允许未经过身份验证的数据库访问,我可以通过任何类型的连接(移动数据和WiFi)连接和检索数据。身份验证是意外失败的唯一部分。

+0

您的问题仍然存在? –

+0

@OussemaAroua是的。 –

+1

@ PN10你甚至读过这个问题。一切工作都通过WiFi连接,但它只能通过移动数据失败。当然,匿名登录已打开。 –

回答

0

发现了一个以前的答案可能与

https://stackoverflow.com/a/45397853/2735586

火力地堡犯规限制任何互联网连接

您可以检查使用以下(从https://developer.android.com/training/basics/network-ops/managing.html#check-connection采取代码)的移动数据连接的状态

private static final String DEBUG_TAG = "NetworkStatusExample"; 
... 
ConnectivityManager connMgr = (ConnectivityManager) 
     getSystemService(Context.CONNECTIVITY_SERVICE); 

networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
boolean isMobileConn = networkInfo.isConnected(); 

Log.d(DEBUG_TAG, "Mobile connected: " + isMobileConn); 

检查此为未认证的&认证访问数据库,以帮助您调试