我知道如何将基本(电子邮件和密码)信息保存到我的 Firebase 数据库中,但我不知道如何将 google 和 Facebook 登录集成保存到我的 Firebase 数据库中
有人可以解释我吗?
谷歌登录集成代码
private void firebaseAuthWithGoogle (GoogleSignInAccount acct){
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
fAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener() {
@Override
public void onComplete(@NonNull Task task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
FirebaseUser user = fAuth.getCurrentUser();
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
finish();
} else {
Toast.makeText(login.this, "Sorry auth failed.", Toast.LENGTH_SHORT).show();
}
// ...
}
});
}
最佳答案
对于 Facebook 在 registerCallback
,您将获得用户名、电子邮件和唯一 ID,您可以通过这些 ID 来检查这是哪个用户。这是示例 代码 :
loginButton.registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
progressDialog.show();
System.out.println("onSuccess");
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
(object, response) -> {
try {
String id = object.getString("id");
String name = object.getString("name");
String email = object.getString("email");
} catch (JSONException e) {
Log.e("login", e.getMessage());
}
} else
Toast.makeText(getApplicationContext(), "Fail to connect with Facebook, Try again later!", Toast.LENGTH_LONG).show();
});
Bundle parameters = new Bundle();
parameters.putString("fields",
"id,name,email,gender, birthday");
request.setParameters(parameters);
request.executeAsync();
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
}
});
而对于 谷歌 在 handleSignInResult
,同样你会personName,personEmail和personId,你可以通过它来检查哪个用户。这是示例 代码 : private void handleSignInResult(Task<GoogleSignInAccount> completedTask) {
try {
GoogleSignInAccount account = completedTask.getResult(ApiException.class);
if (account != null) {
String personName = account.getDisplayName();
String personEmail = account.getEmail();
String personId = account.getId();
}
} catch (ApiException e) {
}
}
备注 : 还是有不懂的可以私信我。
关于java - 如何将 google 和 Facebook 登录集成保存到 firebase 实时数据库 Android Studio Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67295970/