web-dev-qa-db-ja.com

Firebase Web user.reauthenticate()メソッドに必要な「資格情報」オブジェクトを作成する方法は?

new docs の(不明な)例:

_var user = firebase.auth().currentUser;
var credential;
// Prompt the user to re-provide their sign-in credentials
user.reauthenticate(credential).then(function() {
_

v3 Firebaseクライアントでは、このcredentialオブジェクトをどのように作成すればよいですか?

私は試した:

  • reauthenticate(email, password)(ログインメソッドのような)
  • reauthenticate({ email, password })(ドキュメントには1つの引数のみが記載されています)

運がない:(

PS:新しいドキュメントで関連情報を検索するのに無駄な時間をカウントしません...素晴らしいfirebase.comのドキュメントがとても恋しいですが、firebase.storageのv3に切り替えたいと思いました。 ..

46
Pandaiolo

私はそれをうまく機能させることができたので、ドキュメントを更新して、網羅的で読みにくい参照にあまり時間をかけたくない人のためにこれを含める必要があります。

資格情報オブジェクトは次のように作成されます。

const user = firebase.auth().currentUser;
const credential = firebase.auth.EmailAuthProvider.credential(
    user.email, 
    userProvidedPassword
);
95
Pandaiolo

完全な答え-次のことができます。

_var user = firebase.auth().currentUser;
var credentials = firebase.auth.EmailAuthProvider.credential(
  user.email,
  'yourpassword'
);
user.reauthenticateWithCredential(credentials);
_

reauthenticateWithCredentialreauthenticate()の更新バージョンであることに注意してください

21
maudulus

これについてはドキュメントがあまり明確ではないことに同意します。しかし、私が見つけたAPIリファレンスをもう少し詳しく見てみると firebase.auth.AuthCredentialthis であり、reauthenticate()に渡す必要があると思います。 。

私はここで推測していますが、firebase.auth()をログに記録して、そこにcredentialオブジェクトがあるかどうかを確認しようとします。

次のようなものになると思います。

user.reauthenticate(firebase.auth().credential).then(function() {
0
adolfosrs