在 polymer 中从 this.$ 调用外部方法

Call external method from this.$ in polymer

我是聚合物的新手,遇到了一些问题。我的 polymerfire 注册页面有以下代码聚合物代码。

        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();
        },  
    });

问题是我无法从 createUserWithEmailAndPassword 成功函数调用 loginSuccess 函数。是否可以从 firebase-auth create 函数访问外部方法?

有没有办法跟踪 firebase 用户对象中的自定义属性而不是创建第二个自定义用户对象?我认为这不是很有效,因为我必须在整个应用程序中访问这两个属性。

你可以试试这个..

createUserWithEmailAndPassword: function () {
  var self = this;
  // Or ES6
  // let self = this;       
  this.error = null;
   this.$.auth.createUserWithEmailAndPassword(this.email, this.password) 
     .then(function (response) {
       self.loginSuccess();
       console.log("success");
     }).catch(function (error) {
        console.log("Error");
     });

   this.password = null;
}

我用这个技巧为我工作。

干杯..!