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实际上并不支持帐户工具包。 抱歉。 我们没有计划在作品中予以支持,但如果有足够的人要求,我们将重新审视。