Аутентификация с помощью Firebase, используя ссылку электронной почты в Android - PullRequest
1 голос
/ 26 июня 2019

Я пытаюсь использовать пример Firebase «Аутентификация с помощью Firebase, используя ссылку электронной почты в Android». Эта ссылка является тем примером. https://firebase.google.com/docs/auth/android/email-link-auth

Я отправил sendSignInLink на электронную почту.

Но в части "Проверить ссылку и войти" я не понимаю код. В этой части

Intent intent = getIntent();
String emailLink = intent.getData().toString();

Понятно, что intent.getData (). ToString (); сделать ошибку nullpointexception ..... В этом примере с firebase нет подробного объяснения или примера кода по этому поводу.

ActionCodeSettings actionCodeSettings =
    ActionCodeSettings.newBuilder()
            // URL you want to redirect back to. The domain (www.example.com) for this
            // URL must be whitelisted in the Firebase Console.
            .setUrl("https://www.example.com/finishSignUp?cartId=1234")
            // This must be true
            .setHandleCodeInApp(true)
            .setIOSBundleId("com.example.ios")
            .setAndroidPackageName(
                    "com.example.android",
                    true, /* installIfNotAvailable */
                    "12"    /* minimumVersion */)
            .build();



FirebaseAuth auth = FirebaseAuth.getInstance();
auth.sendSignInLinkToEmail(email, actionCodeSettings)
    .addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                Log.d(TAG, "Email sent.");
            }
        }
    });

В этой части все успешно.

Intent intent = getIntent();
String emailLink = intent.getData().toString();

// Confirm the link is a sign-in with email link.
if (auth.isSignInWithEmailLink(emailLink)) {
// Retrieve this from wherever you stored it
String email = "someemail@domain.com";

// The client SDK will parse the code from the link for you.
auth.signInWithEmailLink(email, emailLink)
        .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
            @Override
            public void onComplete(@NonNull Task<AuthResult> task) {
                if (task.isSuccessful()) {
                    Log.d(TAG, "Successfully signed in with email link!");
                    AuthResult result = task.getResult();
                    // You can access the new user via result.getUser()
                    // Additional user info profile *not* available via:
                    // result.getAdditionalUserInfo().getProfile() == null
                    // You can check if the user is new or existing:
                    // result.getAdditionalUserInfo().isNewUser()
                } else {
                    Log.e(TAG, "Error signing in with email link", task.getException());
                }
            }
        });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...