Firebase web user.reauthenticate() yöntemi tarafından ihtiyaç duyulan "kimlik bilgisi" nesnesi nasıl oluşturulur?


32

new docs içinde (belirsiz) örnek: Bu credential nesne oluşturmak nasıl v3 Firebase istemcisi ile

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

?

Denedim:

  • reauthenticate(email, password)
  • reauthenticate({ email, password }) (oturum açma yöntemi gibi) (docs söz bir bağımsız değişken yalnızca)

Hayır şans :(

PS: Yeni dokümanlardaki alakalı bilgileri aramak için harcanan saatleri saymıyorum ... Muhteşem ateşböceklerini çok özledim. com docs, ama firebase.storage için v3 için geçiş yapmak istedim ...

57

Ben, dokümanlar çok fazla zaman harcamak istemiyor kim bu içerecek şekilde güncellenmelidir çalışması için yönetilen kapsamlı ama:

Ben şu gibi bir şey olacaktır varsayalım okunan referans.

kimlik nesne şöyle oluşturulur:

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

Yoldaydım. :) 14 haz. 162016-06-14 12:51:25

+3

Çözümü bulduğunuzu duymak harika! Dokümanları güncellemek/netleştirmek için bir not ekleyeceğim. Ayrıca, belirli bir amaç için her sayfada bir geri bildirim düğmesi olduğunu unutmayın. :-) 14 haz. 162016-06-14 13:44:57

  0

Geri bildirim düğmesi için Cool, +1 (önce görmedim) 14 haz. 162016-06-14 14:05:33

  0

@Pandaiolo - Bunun için teşekkürler. Bunu anlamaya çalışmak için birkaç saat harcadım. 17 haz. 162016-06-17 14:23:05

  0

Bu, dokümanlar üzerinde bulmak oldukça zor. 27 tem. 162016-07-27 07:57:54

  0

Burada yanlış olan: var currentCredential = firebaseAuth.EmailAuthProvider.credential (vm.currentAuth.email, vm.oldPassword); vm.currentAuth.reauthenticate (currentCredential) .ve (fonksiyonu() { Database.updateUserPassword (vm.newPassword); }, fonksiyon (hata) { konsol.hata ('[Hesap]', hata); }); 14 eki. 162016-10-14 19:43:21

  0

'updatePassword' bir' Kullanıcı' yöntemidir. Yani kodunuzda şöyle olurdu: firebase.auth(). CurrentUser.updatePassword (vm.newPassword) '. Ayrıca, sözler veya geri aramalar kullanırsanız, kodunuzda dikkatli olmalısınız, doğru yazdığınızdan emin olmayın, çünkü SO'daki yorumlarda kodu okumak oldukça zordur. 17 eki. 162016-10-17 10:03:06

  0

Örneğin sözlerle: firebase.auth(). CurrentUser.reauthenticate (credentialsObject) .then (function() {return firebase.auth(). CurrentUser.updatePassword (newPassword);}) sonra (function() {/ * Biz burada işimiz bitti * /}) yakalamak (fonksiyon (hata) {/ * burada hata * /}); ' 17 eki. 162016-10-17 10:06:38


0

Bu belgede belgelerin pek açık olmadığını kabul ediyorum. Ancak API referansında biraz daha derine baktığımda, firebase.auth.AuthCredential ve this'u buldum ve sanırım reauthenticate() numarasına geçmeniz gerekiyor.

Burada tahmin ediyorum ama orada credential nesnesinin olup olmadığını görmek için firebase.auth() günlüğünü kaydetmeye çalışıyorum.

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

Çalışmayı başardım, bir cevap yazarım. Cevabınızdaki e-postayı ve şifreyi unutmuşsunuz :) 14 haz. 162016-06-14 12:46:29

  0

Tahmininiz işe yaramıyor. 27 may. 172017-05-27 21:19:26


-1
final FirebaseUser fireBaseUser = FirebaseAuth.getInstance().getCurrentUser(); 
AuthCredential credential = EmailAuthProvider.getCredential(fireBaseUser.getEmail(), storedPassword); 
fireBaseUser.reauthenticate(credential).addOnCompleteListener(new OnCompleteListener<Void>() { 
    @Override 
    public void onComplete(@NonNull Task<Void> reAuthenticateTask) { 
      if (!reAuthenticateTask.isSuccessful()) 
       ... 
    } 
}); 
  0

Bu javascript değil ... 03 haz. 172017-06-03 01:32:14


8

Komple cevap - aşağıdakileri yapabilirsiniz:

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

reauthenticateWithCredentialreauthenticate()

güncellenmiş versiyonu olduğuna dikkat edin
+1

gelen eksik üçüncü satır eklediğiniz için teşekkürler kabul edilen cevap 27 may. 172017-05-27 21:20:13