Ich bin neu in Polymer und ich habe ein paar Probleme. Ich habe den folgenden Code-Code für meine Polymerfire-Registrierungsseite.
Polymer({
is: 'my-register',
properties: {
message: {
type: String,
value: '',
},
email:{
type: String,
value: '',
},
password: {
type: String,
value: '',
},
user: {
type: Object,
notify: true,
},
customUser: {
value: {},
notify: true,
},
},
loginSuccess: function(){
this.customUser['status'] = 1;
if(this.customUser['status'] == 1 && this.message == ""){
console.log("done");
// this.$.ironLocation.set('path', '/profile');
}
},
createUserWithEmailAndPassword: function() {
this.error = null;
this.$.auth.createUserWithEmailAndPassword(this.email, this.password)
.then(function(response) {
this.loginSuccess();
console.log("success");
})
.catch(function(error) {
console.log("Error");
});
this.password = null;
},
ready: function(){
this.customUser['status'] = 0;
},
handleError: function(e) {
this.message = 'Error: ' + e.detail.message;
},
signOut: function() {
this.error = null;
this.$.auth.signOut();
},
});
Das Problem ist, dass ich nicht die loginSuccess Funktion aus der createUserWithEmailAndPassword Erfolgsfunktion aufrufen können. Ist es möglich, von der Firebase-Auth-Create-Funktion auf externe Methoden zuzugreifen?
Und gibt es eine Möglichkeit, benutzerdefinierte Attribute im Firebase-Benutzerobjekt zu verfolgen, anstatt ein zweites benutzerdefiniertes Benutzerobjekt zu erstellen? Ich denke nicht, dass dies sehr effizient ist, da ich auf beide Eigenschaften in der gesamten Anwendung zugreifen muss.
Es gibt keine andere Möglichkeit als einen benutzerdefinierten Benutzer für benutzerdefinierte Benutzerinformationen zu erstellen. nicht sicher, aber versuchen, (das) an die create-Funktion zu binden –
Wie genau meinst du bind (this)? Übergeben Sie dies als Parameter an die create-Funktion? –
versuchen: .then (Funktion (Antwort)) { this.loginSuccess(); console.log ("Erfolg"); } .bind (this)). oder für eine sauberere Lösung können Sie auch mit Pfeilfunktionen versuchen (es6): .then ((response) => { this.loginSuccess(); console.log ("Erfolg"); }). Niros Antwort wird wahrscheinlich funktionieren, ist aber nicht sehr sauber –