7
sendEmailVerificationで送信された電子メールをユーザが確認したときに、クライアント(ウェブ)が通知/通知する方法はありますか?firebase - sendEmailVerificationで送信された電子メールをユーザが確認したときに通知を受ける
これは、ユーザーが確認して認証が完了すると、1ページアプリケーションが待機してから状態をログインに変更するために重要です。
sendEmailVerificationで送信された電子メールをユーザが確認したときに、クライアント(ウェブ)が通知/通知する方法はありますか?firebase - sendEmailVerificationで送信された電子メールをユーザが確認したときに通知を受ける
これは、ユーザーが確認して認証が完了すると、1ページアプリケーションが待機してから状態をログインに変更するために重要です。
FireBaseは、電子メールが確認され、そのようなインターフェイスが「現在考慮されていません」と通知された場合、クライアントに通知する直接的な方法はないようです。
function registerUserAndWaitEmailVerification(email, password, showWaitUI) {
return new Promise(function(resolve, reject) {
let interval=null;
firebase.auth().createUserWithEmailAndPassword(email, password).then(
user => {
user.sendEmailVerification().then(
() => {
if (showWaitUI) showWaitUI();
interval = setInterval(() => {
user.reload().then(
() => {
if (interval && user.emailVerified) {
clearInterval(interval);
interval=null;
resolve(user);
}
}, error => {
if (interval) {
clearInterval(interval);
interval=null;
console.log('registerUserAndWaitEmailVerification: reload failed ! '+error.message+' ('+error.code+')');
reject(error);
}
}
);
}, 1000);
}, error => {
console.log('registerUserAndWaitEmailVerification: sendEmailVerification failed ! '+error.message+' ('+error.code+')');
reject(error);
});
}, error => {
console.log('registerUserAndWaitEmailVerification: createUserWithEmailAndPassword failed ! '+error.message+' ('+error.code+')');
reject(error);
}
);
});
}
コードは以下となります:
は、私は、次の解決策を考え出しましたprob モーダル説明書を添付してください( '確認のメールをご確認くださいリンク。 ')と砂時計に
で拒否認証がいた場合は行うことができます。
function showRegisterUI() {
// show a modal with instructions ('Please check your email for the confirmation link.') and an hourglass
}
registerUserAndWaitEmailVerification(email, password, showRegisterUI).then(
user => {
// uid in user.uid
, error => {
// alert user with error.message, go back to login screen
}
);
}
・ホープ、このことができます:)
投票まで:完璧な答え! – user2783091