【发布时间】:2017-08-26 16:24:34
【问题描述】:
当设备通过移动数据连接连接时,我遇到了 Firebase 身份验证问题。如果通过 WiFi 身份验证连接可以正常工作。
我正在使用以下代码进行身份验证:
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());
}
}
});
}
}
通过移动数据连接时收到错误:
signInAnonymously 失败: com.google.firebase.FirebaseNetworkException:网络错误(例如 超时、连接中断或无法访问主机)已发生。 在 com.google.android.gms.internal.zzblv.zzce(未知来源) 在 com.google.android.gms.internal.zzbls$zzj.zza(未知来源) 在 com.google.android.gms.internal.zzbmd.zzcf(未知来源) 在 com.google.android.gms.internal.zzbmd$zza.onFailure(未知来源) 在 com.google.android.gms.internal.zzbly$zza.onTransact(未知来源) 在 android.os.Binder.execTransact(Binder.java:404) 在 dalvik.system.NativeStart.run(Native Method)
我可以做些什么来解决上述问题或获取有关真正导致问题的更多信息。
手机通过移动数据运行良好,并成功访问互联网和 Google Play 商店。
Firebase 版本 10.2.0,Android API 19
一些附加信息。上述身份验证的主要目的是对 Firebase 数据库的访问身份验证。
如果我允许未经身份验证的数据库访问,我可以通过任何类型的连接(移动数据和 WiFi)连接和检索数据。身份验证是唯一意外失败的部分。
【问题讨论】:
-
你的问题还有吗?
-
@OussemaAroua 是的。
-
@PN10 你有没有读过这个问题。一切都通过 WiFi 连接工作,但它只能通过移动数据失败。当然是开启了匿名登录。
-
您是否尝试过使用不同运营商的移动数据连接?
-
@azizbekian 不,因为我目前只能访问一名操作员。如果有任何机会操作员应该受到责备,那么我也想知道如何证明(调试)这一点。问题是为什么只有身份验证失败,为什么只能通过移动数据?
标签: android firebase firebase-authentication