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

Ste*_*fen 6 android facebook ios firebase firebase-authentication

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 )

小智 6

是的,可以使用Firebase自定义身份验证.

您需要使用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();
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

这篇博文有关于如何实现它的详细分步指南.