質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

0回答

428閲覧

【firebase auth】再認証(reauthenticateAndRetrieveDataWithCredential)が失敗する

kirichan

総合スコア6

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2019/06/23 06:05

編集2019/06/24 07:03

JavaScriptでfirebase認証を作成しています。

メールアドレス、パスワードの変更をしたいので以下コードで変更を実施しようとしています。
しかし、firebaseからエラーが返ってきており、メールアドレス、パスワードの更新ができません。

なお、ログインは正常に行えていることからメールアドレスとパスワードは問題ない前提で質問させていただきます。

コンソールに表示されるエラー

javascript

1Status Code: 400 2{code: "auth/user-mismatch", message: "The supplied credentials do not correspond to the previously signed in user."}

初期化

javascript

1const firebaseConfig = { 2 apiKey: process.env.REACT_APP_FIREBASE_API_KEY, 3 authDomain: process.env.REACT_APP_FIREBASE_AUTH_DOMAIN, 4 databaseURL: process.env.REACT_APP_FIREBASE_DATABASE_URL, 5 projectId: process.env.REACT_APP_FIREBASE_PROJECT_ID, 6 storageBucket: process.env.REACT_APP_FIREBASE_STORAGE_BUCKET, 7 messagingSenderId: process.env.REACT_APP_FIREBASE_MESSAGING_ID, 8 appId: process.env.REACT_APP_APP_ID 9}; 10 11export const firebaseApp = firebase.initializeApp(firebaseConfig);

ログインとメールアップデート

javascript

1export const firebaseApi = { 2 // ログイン 3 login: async function(email, password, persistence) { 4 await firebaseApp.auth().signOut(); 5 try { 6 await firebaseApp.auth().setPersistence(persistence); 7 var res = await firebaseApp.auth().signInWithEmailAndPassword(email, password); 8 return await { 9 response: res, 10 isLogin: true, 11 errorCd: '' 12 }; 13 } catch (error) { 14 console.log(error); 15 var errorMsg = this.getFirebaseErrMsg(error.code); 16 return {response: res, isLogin: false, errorMsg: errorMsg}; 17 } 18 }, 19 //メールアドレス変更 20 changeEmailAddress: async function(email,password) { 21 try { 22 const credential = firebase.auth.EmailAuthProvider.credential(email, password); 23 console.log(credential); 24 25 // 以下の処理を実行しようとしてエラーが発生しています。 26 const { user } = await firebase.auth().currentUser.reauthenticateAndRetrieveDataWithCredential(credential); 27 console.log(user); 28 // 再認証完了 29 if (user) { 30 // User is signed in. 31 try { 32 var res = await user.updateEmail(email); 33 return await { 34 isEmailUpdate: true, 35 changeEmailErrorCd: '' 36 }; 37 } catch (error) { 38 console.log(error); 39 return {isEmailUpdate: false, changeEmailErrorCd: this.getFirebaseErrMsg(error.code)}; 40 } 41 } 42 } catch (error) { 43 //reauthenticateAndRetrieveDataWithCredential のエラー 44 console.log(error); 45 return {isEmailUpdate: false, changeEmailErrorCd: this.getFirebaseErrMsg(error.code)}; 46 } 47 } 48}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問