2017-03-10 2 views
0

Mein Code ist: in jj-login.htmlFirebase Benutzerobjekt ist nicht neu Änderungen ausgelöst, bei den Benutzern bei Kind benutzerdefiniertes Elemente aktualisiert

<paper-icon-item> 
<paper-avatar label="{{user.displayName}}" src="{{user.photoURL}}"></paper-avatar> 
...... 
    <jj-social-icons user={{user}}></jj-social-icons> 

Bei unter jj-social-icons.html Benutzerobjekt definiert und wahr benachrichtigen.

user:{type: Object, 
     notify:true}, 

Bei verknüpften sozialen Anbietern (wie Facebook twetter) Ich aktualisiere user.displayName und user.photoURL mit Daten des neuen Berechtigungsnachweises. mit:

user.providerData.forEach(function (profile) { 
    if (profile.providerId==authId) { 
     user.updateProfile({ 
      displayName: profile.displayName, 
      photoURL: profile.photoURL 
     }).then(function() { 
     console.log("update succesfull"); // Update successful. 
     }, function(error) { 
      // An error happened. 
     }); 
    } 

}); 

Aktualisierung ist erfolgreich. Aber am Elternelement (jj-login.html, oben) werden Benutzername und Foto nicht automatisch aktualisiert. (Änderungen werden nicht durchgeführt) Wie löst man das?

Antwort

1

Um das Datensystem einer subproperty Änderung mitteilen, verwenden this.notifyPath():

user.updateProfile(...).then(() => { 
    this.notifyPath('user.displayName'); 
    this.notifyPath('user.photoURL'); 
}); 
+0

Try 'this.notifyPath ('user.displayName')' und 'this.notifyPath ('user.photoURL')' statt . – tony19

+0

Das ist große Hilfe Tony. Vielen Dank wirklich :)) Es funktioniert jetzt :)) – HakanC

+0

@Hakan Kein Problem :) – tony19

Verwandte Themen