Я уже читал документацию как миллион раз. Я добавил ключ отладки SH1 в Project Firebase Project в качестве отпечатка пальца, и я использую конфигурацию Web SDK из Firebase в качестве идентификатора веб -клиента:
I'm It It Set On Strings. />
Код: Выделить всё
**HERE**
Код: Выделить всё
public class AuthFragment extends Fragment {
private FragmentAuthBinding binding;
private SignInClient oneTapClient;
ActivityResultLauncher oneTapLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
result -> {
if (result.getResultCode() == Activity.RESULT_OK) {
Intent data = result.getData();
try {
var credential = oneTapClient.getSignInCredentialFromIntent(data);
String idToken = credential.getGoogleIdToken();
} catch (ApiException e) {
throw new RuntimeException(e);
}
}
});
public AuthFragment() {}
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
binding = FragmentAuthBinding.inflate(inflater, container, false);
return binding.getRoot();
}
public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
HandleGoogleLogin();
}
@Override
public void onDestroyView() {
super.onDestroyView();
binding = null;
}
void HandleGoogleLogin()
{
oneTapClient = Identity.getSignInClient(requireActivity());
var signInRequest = BeginSignInRequest.builder()
.setGoogleIdTokenRequestOptions(BeginSignInRequest.GoogleIdTokenRequestOptions.builder()
.setSupported(true)
.setServerClientId(getString(R.string.web_client_id))
.setFilterByAuthorizedAccounts(false)
.build())
.build();
var googleLoginButton = binding.googleLoginButton;
googleLoginButton.setOnClickListener(v -> {
oneTapClient.beginSignIn(signInRequest)
.addOnSuccessListener(requireActivity(), result -> {
var intentSenderRequest = new IntentSenderRequest
.Builder(result.getPendingIntent().getIntentSender())
.build();
oneTapLauncher.launch(intentSenderRequest.getFillInIntent());
})
.addOnFailureListener(requireActivity(), e -> {
Log.d("googleLoginButton", "oneTapClient.beginSignIn:onError - " + e.getMessage());
// Handle errors or continue presenting the signed-out UI
});
});
}
}
< /code>
Это не единственный способ, которым я пытался его реализовать. Я также попытался добавить ключ SH1 в https://console.cloud.google.com/ и настройка OAuth 2.0 с https://console.cloud.google.com/apis/credentials?project=myProject:
Но на самом деле ничего не работает.
Все, что я всегда получаю. учетные данные.
Я не знаю, что я делаю не так. Обратите внимание, что у меня есть SetFilterByAuthorizedAccounts установить на false .
Как я могу заставить его работать? Что я делаю неправильно? Пользователи подписания моего приложения Firebase, почему оно также не выходит от провайдера Auth, скажем, Google? />https://medium.com/firebase-developers/ ... 60b30e621d
ничего не помогает.
Подробнее здесь: https://stackoverflow.com/questions/759 ... credential