2016-06-14 14 views
32

The (niejasne) przykład w new docs:Jak utworzyć obiekt "referencyjny" wymagany przez metodę Firebase web user.reauthenticate()?

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

Z v3 Firebase klienta, w jaki sposób należy utworzyć ten credential obiekt?

Próbowałem:

  • reauthenticate(email, password) (jak metoda logowania)
  • reauthenticate({ email, password }) (docs wspomnieć tylko jeden argument)

Nie traf :(

PS: Nie liczę godzin marnowanych na szukanie odpowiednich informacji w nowych dokumentach ... Tęsknię za tą bajeczną bazą ogniową. com docs, ale chciałem przejść na v3 dla firebase.storage ...

Odpowiedz

57

udało mi się zrobić to praca, dokumentacja powinna zostać uzupełniona o tym, kim nie chce spędzać zbyt dużo czasu w wyczerpujący, ale -odczytane do przeczytania.

poświadczeń obiekt jest tworzony tak:

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

Byłem w drodze. :) – adolfosrs

+3

Dobrze jest usłyszeć, że znalazłeś rozwiązanie! Dodam notatkę, aby zaktualizować/wyjaśnić dokumenty. I pamiętaj, że istnieje również przycisk opinii na każdej stronie dla tego konkretnego celu. :-) –

+0

Fajnie, +1 dla przycisku opinii (początkowo nie widziałem) – Pandaiolo

0

Zgadzam się, że dokumentacja nie jest do końca jasna. Ale patrząc nieco głębiej na API odniesienia znalazłem firebase.auth.AuthCredential i this i myślę, że powinieneś chcieć przekazać to do reauthenticate().

Zgaduję, ale chciałbym zacząć próbować zalogować firebase.auth(), aby sprawdzić, czy istnieje tam jakiś obiekt credential.

Przypuszczam będzie to wyglądać mniej więcej tak:

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

Udało mi się go uruchomić, piszę odpowiedź. W swojej odpowiedzi zapomniałeś e-maila i hasła :) – Pandaiolo

+0

Twoje przypuszczenie nie działa. – Rohmer

-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

To nie jest javascript ... – Rohmer

8

pełna odpowiedź - można wykonać następujące czynności:

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

Uwaga reauthenticateWithCredential jest zaktualizowana wersja reauthenticate()

+1

Dzięki za dodanie trzeciej linii, której brakuje w zaakceptowana odpowiedź – Rohmer

Powiązane problemy