我已经尝试使用它返回的访问令牌来验证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)
解决方法
您需要使用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有关于如何实施它的详细分步指南.