Ste*_*ven 7 android webview google-play-services google-signin
我想为我的应用创建Google登录,但是我的结果代码onActivityResult()为0
在我的onCreate()方法中,我startSignInIntent()像这样启动函数:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//some other stuff
view.loadUrl(myURL);
startSignInIntent();
}
Run Code Online (Sandbox Code Playgroud)
这是 startSignInIntent()
private void startSignInIntent() {
GoogleSignInClient signInClient = GoogleSignIn.getClient(this,
GoogleSignInOptions.DEFAULT_SIGN_IN);
Intent intent = signInClient.getSignInIntent();
startActivityForResult(intent, RC_SIGN_IN);
}
Run Code Online (Sandbox Code Playgroud)
这是 onActivityResult()
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d(TAG, "data : " + resultCode + " | " + data + " || " + RC_SIGN_IN + " ||| " + requestCode);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
// The signed in account is stored in the result.
GoogleSignInAccount signedInAccount = result.getSignInAccount();
} else {
String message = result.getStatus().getStatusMessage();
if (message == null || message.isEmpty()) {
Toast.makeText(this, "Login failed", Toast.LENGTH_LONG).show();
}
new AlertDialog.Builder(this).setMessage(message)
.setNeutralButton(android.R.string.ok, null).show();
}
}
Run Code Online (Sandbox Code Playgroud)
这是登录功能的结果 onActivityResult()
0 | 意图{(有其他功能)} || 2 ||| 2
我遇到了相同的错误,requestCode始终为0(RESULT_CANCELED)。
决定要在Firebase控制台中启用Google登录。
Firebase控制台->您的项目->身份验证->提供程序-> Google->并将其打开。
就我而言,链接就像这样
https://console.firebase.google.com/u/0/project/ {项目名称} / authentication / providers
尝试检查您是否为应用正确配置了正确的OAuth密钥。根据此相关SO帖子,OP注意到Auth密钥也与其他创建该问题的项目相关联。
您还可以检查以下尝试登录Android实施,以了解代码实施:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Result returned from launching the Intent from GoogleSignInClient.getSignInIntent(...);
if (requestCode == RC_SIGN_IN) {
// The Task returned from this call is always completed, no need to attach
// a listener.
Task<GoogleSignInAccount> task = GoogleSignIn.getSignedInAccountFromIntent(data);
handleSignInResult(task);
}
}
Run Code Online (Sandbox Code Playgroud)
另外,OP还提供了一些其他信息,您需要确保在测试APK时对它进行了签名。有关其详细信息,请参阅有关对您的应用程序签名的文档。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
7085 次 |
| 最近记录: |