Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 通过移动数据的Firebase匿名身份验证失败_Android_Firebase_Firebase Authentication - Fatal编程技术网

Android 通过移动数据的Firebase匿名身份验证失败

Android 通过移动数据的Firebase匿名身份验证失败,android,firebase,firebase-authentication,Android,Firebase,Firebase Authentication,当设备通过移动数据连接连接时,我遇到Firebase身份验证问题。如果通过WiFi连接,则验证工作正常 我正在使用以下代码进行身份验证: public class MyAuthActivity extends Activity { protected FirebaseAuth auth; protected FirebaseAuth.AuthStateListener authListener; protected FirebaseUser user; @Ov

当设备通过移动数据连接连接时,我遇到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());
                        }
                    }
                });


    }
}
公共类MyAuthActivity扩展活动
{
受保护的FirebaseAuth auth;
受保护的FirebaseAuth.AuthStateListener authListener;
受保护的FirebaseUser用户;
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
auth=FirebaseAuth.getInstance();
authListener=new FirebaseAuth.AuthStateListener()
{
@凌驾
AuthStateChanged上的公共void(@NonNull FirebaseAuth FirebaseAuth)
{
user=firebaseAuth.getCurrentUser();
如果(用户!=null)
{
//用户已登录
Log.d(“应用程序”、“onAuthStateChanged:signed_in:”+user.getUid());
}
其他的
{
//用户已注销
Log.d(“应用程序”、“onAuthStateChanged:已注销”);
}
}
};
auth.addAuthStateListener(authListener);
署名
.addOnFailureListener(此,新的OnFailureListener()
{
@凌驾
public void onFailure(@NonNull异常e)
{
Log.w(“应用程序”,“重大故障:”,e);
}
})
.addOnCompleteListener(这是新的OnCompleteListener()
{
@凌驾
未完成的公共void(@NonNull任务)
{
Log.d(“APP”,“signinanoymously:onComplete:+task.issusful());
如果(!task.issusccessful())
{
Log.w(“APP”,“signinanoymously”,task.getException());
}
}
});
}
}
通过移动数据连接时收到错误:

重大的失败: 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(本机方法)

我能做些什么来解决上述问题,或者获得更多关于问题真正原因的信息

另外,手机通过移动数据运行良好,并成功访问互联网和谷歌Play商店

Firebase版本10.2.0,Android API 19


一些补充资料。上述身份验证的主要目的是对Firebase数据库进行访问身份验证


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

发现以前的答案可能与此相关

Firebase不限制任何互联网连接

您能否使用以下代码检查移动数据连接的状态(代码取自)


检查此项以获得对DB的未经验证和验证的访问权限,以帮助您调试

您的问题是否仍然存在?@oussemaroua是。@PN10您是否阅读了问题。一切都是通过WiFi连接实现的,但只有通过移动数据才能实现。当然,匿名登录已打开。您是否尝试使用不同运营商的移动数据连接?@azizbekian否,因为我目前只能访问一个运营商。如果操作员有什么过错,那么我也想知道如何证明(调试)。问题是为什么只有身份验证失败,为什么只有通过移动数据?
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);