0

Firebase Google Web SDKの最新バージョンに従っています。ログインからサインアップまでのすべてがうまくいきます。ユーザーが自分のアカウントを削除できるようにして、firebase.UserクラスのAPIリファレンスに従っています。また、私はmanaging usersについての彼らのドキュメントを読んでいます。Firebaseユーザーの削除が動作しない

function deleteAccount() { 
    console.log('delete account!!') 
    const auth = firebase.auth() 
    console.log({auth}) 

    auth.delete().then(function() { 
    console.log('delete successful?') 
    const user = firebase.auth().currentUser 
    console.log({user}) 
    store.dispatch(forgetUser()) 
    routerReset('GetStarted') 
    }).catch(function (error) { 
    console.log({error}) 
    // An error happened. 
    }) 
} 

firebase.Authオブジェクトから動作するように表示され、約束を解決delete機能:

これは私が使用するコードです。 signOutログと同じことをやっている場合しかし、ここで、未定義のオブジェクトを提示:

console.log({user}) // { user: Firebase.User object } 

エラーは放出されません。

注:これは反応ネイティブアプリです。

答えて

2

currentUserへの参照が不足しているようです。 Firebase documentation on deleting a userから

あなたはdelete方法でユーザーアカウントを削除することができます。たとえば:

var user = firebase.auth().currentUser; 

user.delete().then(function() { 
    // User deleted. 
}, function(error) { 
    // An error happened. 
}); 

重要:ユーザーを削除するには、ユーザーが最近に署名している必要があります。 「ユーザーの再認証」を参照してください。

あなたのコードはcurrentUserを参照していません。私はauth object自体の上でdeleteが何を呼んでいるのかわからない。

更新:私は私が署名したので、それはあまりにも長かっただろうと言ってレスポンスのボディに、400を得た最初

firebase.auth().currentUser.delete().then(function() { 
    console.log('delete successful?') 
    console.log(app.auth().currentUser) 
}).catch(function (error) { 
    console.error({error}) 
}) 

:私はちょうど行動を検証するために、これを実行しました。再認証して再試行した後、私は得た:

削除成功?それがそうすることを示すエラーをスローし、ちょうど約束を解決してはならない他、ケースです

ヌル

+0

このコードは、上記と同じように動作します。なぜ私は無視する。 – jsdario

+0

努力してくれてありがとう、私は再試行します - うまくいけば前に間違っていた。これは反応的なネイティブプロジェクトであるため、不透明なAPIに若干の違いが生じる可能性があります(例えば、内部的にPromiseを別の方法で解決したり、 'fetch'と' XmlHttpRequest'を使用しています。)現在、 'onAuthStateChange'で回避策を使用しています。 – jsdario

0

ユーザーを削除するには、ユーザーが最近サインインしている必要があります。

+0

。右? – jsdario

関連する問題