Firebase - вход с помощью ссылки электронной почты возвращает ошибку 400 - PullRequest
0 голосов
/ 11 апреля 2020

Надеемся, что мастера этого сайта могут помочь. Есть много похожих вопросов, но имена и специфика методов Firebase часто меняются, поэтому я решил спросить. В моем случае я размещаю свой сайт по URL-адресу хостинга Firebase и пытаюсь реализовать метод входа, используя ссылку электронной почты. Я копирую код в виде документации: https://firebase.google.com/docs/auth/web/email-link-auth

Когда я пытаюсь проверить это, на моей консоли появляется сообщение об ошибке:

POST https://www.googleapis.com/identitytoolkit/v3/relyingparty/getOobConfirmationCode?key= // строка символов и цифр 400

Мой код:

import firebase from "firebase"

function SignInWithEmailLink() {

    var actionCodeSettings = {
        // URL you want to redirect back to. The domain (www.example.com) for this
        // URL must be whitelisted in the Firebase Console.
        url: 'https://myurl.web.app/',
        // This must be true.
        handleCodeInApp: true,
        iOS: {
            bundleId: 'com.example.ios'
        },
        android: {
            packageName: 'com.example.android',
            installApp: true,
            minimumVersion: '12'
        },
        dynamicLinkDomain: 'https://myurl.web.app/'
    };

    function sendEmail() {
        var email = document.getElementById("userEmail").value
        firebase.auth().sendSignInLinkToEmail(email, actionCodeSettings)
            .then(function () {
                // The link was successfully sent. Inform the user.
                // Save the email locally so you don't need to ask the user for it again
                // if they open the link on the same device.
                window.localStorage.setItem('emailForSignIn', email);
                window.alert("Sending email link!")
            })
            .catch(function (error) {
                // Some error occurred, you can inspect the code: error.code
                window.alert("An error occurred...")
            });

   return (
                <div>
                    <form>
                        <input type="text" id="userEmail" />
                        <button type="button" onClick={() => sendEmail()}>Send Email Link</button>
                    </form>
                </div>
)

И да, я запускаю фрагмент инициализации Firebase в моем индексе . html.

Ошибка 400, которую я считаю, означает, что страница не может быть найдена. Я предполагаю, что это означает, что страница подтверждения Google не может быть найдена, хотя я думал, что это может означать, что мой собственный URL не был найден, поэтому я попытался изменить URL перенаправления. Я уже сделал несколько работ, просто получая данные электронной почты для сохранения. Я также только что проверил своего администратора Google, чтобы убедиться, что это не проблема.

Кроме того, поскольку на самом деле срабатывает catch(error), я знаю, что firebase.auth() читается, даже если не правильно.

Возможно, вы все увидите, насколько это легко на самом деле? Любой совет будет принят во внимание. Я включу больше кода, если хотите, но я думаю, что это все, что имеет значение.

1 Ответ

0 голосов
/ 04 мая 2020

После регистрации в консоли некоторых ошибок проблема стала очевидной. Мой ввод для dynamicLinkDomain не был поддержан. После комментирования ошибка исчезла. Конечно, со временем мне придется установить dynamicLinkDomain, но я перейду этот мост позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...