tet*_*ato 14 android facebook firebase firebase-authentication
我一直在浏览Firebase文档,在我的Android应用程序中设置用户身份验证系统.但是出于某种原因,它看起来并不像我的FirebaseAuth对象上运行任何回调!
例如,按照此处的说明设置Facebook身份验证
private void handleFacebookAccessToken(AccessToken token) {
Log.d("AUTH", "handleFacebookAccessToken:" + token.getToken());
// ...
AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
Log.d("AUTH", "Credential: "+credential);
mAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.d("AUTH", "signInWithCredential:onComplete:" + task.isSuccessful());
// If sign in fails, display a message to the user. If sign in succeeds
// the auth state listener will be notified and logic to handle the
// signed in user can be handled in the listener.
if (!task.isSuccessful()) {
Log.w("AUTH", "signInWithCredential", task.getException());
Toast.makeText(LoginActivity.this, "Authentication failed.",
Toast.LENGTH_SHORT).show();
}
// ...
}
});
}
Run Code Online (Sandbox Code Playgroud)
Facebook的一切都很好,但是当使用检索到的fb凭证登录时,signInWithCredential函数不会运行任何回调,似乎在我的用户数据库中没有发生任何事情.
此外,我尝试了更简单
mAuth.createUserWithEmailAndPassword(etUserID.getText().toString(), etPassword.getText().toString());
Run Code Online (Sandbox Code Playgroud)
也没有任何事情发生.我已在Firebase控制台中启用了这两个提供程序,并下载了该项目的最新google-services.json文件.我错过了什么吗?
编辑:刚尝试运行快速启动身份验证演示,它也不能正常工作.我确实在我的模拟器上看到,除非我更新谷歌服务,否则这个应用程序将无法运行.这是导致此错误的原因吗?我尝试在各种模拟器上更新谷歌服务,只是返回一个错误.
它只在一个真正的Android设备上工作,但没有幸运的模拟器.
对于设备,您需要在app gradle文件中添加以下依赖项:
compile 'com.google.android.gms:play-services-auth:9.0.2'
Run Code Online (Sandbox Code Playgroud)
我还没有测试,但似乎如果你用更新的谷歌播放服务更新模拟器图像,它也应该工作.
希望能帮助到你.
该问题似乎是由某些模拟器不支持最新版本的 Google Play 服务引起的!(您将在 logcat 中看到错误)带有 Google API 的 Galaxy Nexus 5x API 23 似乎可以使用登录。
| 归档时间: |
|
| 查看次数: |
2891 次 |
| 最近记录: |