android – Firebase:我可以使用Facebook的新帐户套件来验证应用用户吗?

Facebook刚刚在F8 2016推出了 Account Kit.

它使应用程序用户可以使用他们的电话号码或电子邮件地址登录.

我已经尝试使用它返回的访问令牌来验证Firebase的常规Facebook登录,但它没有用.

是否已经有办法使用Facebook帐户套件使用Firebase对应用程序用户进行身份验证?

附加信息

我可以通过Account Kit登录并使用AccountKit.getCurrentAccessToken()接收访问令牌;

然后,我尝试使用访问令牌对Firebase进行身份验证:

选项1)

mFirebaseRef.authWithOAuthToken(“facebook”,accessToken.getToken(),new AuthResultHandler(“facebook”));

– > FirebaseError:提供的身份验证凭据无效.

选项2)

mFirebaseRef.authWithCustomToken(accessToken.getToken(),new Firebase.AuthResultHandler(){…}

– > FirebaseError:登录失败 – 无法解析身份验证令牌.

(顺便说一句,访问令牌字符串是使用常规Facebook登录按钮登录时生成的令牌长度的一半.)

我想知道我是否已经可以使用Account Kit生成的令牌来验证Firebase?

(顺便说一下,我也试着在这里得到答案:https://groups.google.com/forum/#!topic/firebase-talk/qrb1gWBKO3M)

解决方法

是的,可以使用 Firebase Custom Authentication.

您需要使用accountkit用户ID或电话号码作为uid来设置可以创建Firebase自定义令牌的身份验证服务器.

从身份验证服务器收到自定义令牌后,您可以使用它来登录firebase,如下所示:

mAuth.signInWithCustomToken(mCustomToken)
        .addOnCompleteListener(this,new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                Log.d(TAG,"signInWithCustomToken:onComplete:" + task.isSuccessful());
                if (!task.isSuccessful()) {
                    Log.w(TAG,"signInWithCustomToken",task.getException());
                    Toast.makeText(CustomAuthActivity.this,"Authentication failed.",Toast.LENGTH_SHORT).show();
                }
            }
        });

这篇blog post有关于如何实施它的详细分步指南.

相关文章

Android 如何解决dialog弹出时无法捕捉Activity的back事件 在...
Android实现自定义带文字和图片的Button 在Android开发中经常...
Android 关于长按back键退出应用程序的实现最近在做一个Andr...
android自带的时间选择器只能精确到分,但是对于某些应用要求...