Firebase:我可以使用Facebook的新帐户套件对应用用户进行身份validation吗?

Facebook刚刚在F8 2016推出了账户套件 。

它使应用程序用户能够使用他们的电话号码或电子邮件地址login。

我已经尝试使用它的返回的访问令牌来validation与常规的Facebooklogin的Firebase,但它没有工作。

是否已经有一种方法使用Facebook帐户工具包对使用Firebase的应用用户进行身份validation?

附加信息

我可以通过帐户工具包login,并通过AccountKit.getCurrentAccessToken();获得访问令牌AccountKit.getCurrentAccessToken();

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

选项1)

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

– > FirebaseError:提供的authentication凭证无效。

选项2)

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

– > FirebaseError:login失败 – 无法parsing身份validation令牌。

(顺便说一句,访问令牌string是我使用常规的Facebookloginbuttonlogin时生成的令牌长度的一半)。

我想知道我是否已经可以使用帐户工具包生成的令牌来validationFirebase?

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

是的,可以使用Firebase自定义身份validation 。

您需要设置一个可以创buildFirebase自定义标记的身份validation服务器,并使用accountkit用户标识或电话号码作为uid。

一旦从authentication服务器收到自定义令牌,就可以使用它来login到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(); } } }); 

这篇博客文章详细介绍了如何实施它。

我在Firebase Google群组中获得了以下答案:

是的,在与另一名Firebase工程师讨论后,我很确定Firebase身份validation实际上并不支持帐户工具包。 抱歉。 我们没有计划在作品中予以支持,但如果有足够的人要求,我们将重新审视。