1

我是 Polymer 的新手,我一直在设置数据库数据。我设法使电子邮件身份验证工作,我需要在创建用户后保存用户数据。我使用 firebase-app 元素初始化应用程序。

这是重要的部分:

this.$.auth.createUserWithEmailAndPassword(email, pass).then(function (user) {
                    user.sendEmailVerification();
                    document.getElementById("emaildialog").toggle();
                    var view = document.getElementById("r_view");

                    firebase.database().ref('/user/' + user['uid']).set({
                        name: view.name,
                        surname: view.surName
                    }).catch(function (err) {
                        console.log(err.message);
                    });
                })

用户已成功创建,但用户数据不会被保存并且

firebase.database 不是函数”

抛出错误。我想这是因为我无法访问firebase.database范围内的功能。我找到了许多使用纯 JavaScript 解决问题的方法,但我不确定官方的“Polymer way”是什么。

编辑:我仍然无法让它工作。我设法获得了 app 对象的引用,但似乎没有可用的数据库方法。我写了一个简单的调试函数:

    debugFunction: function () {
        if (!!this.user) {
            var fb = this.$.auth.app;
            console.log(!!fb); // Output is true,
            var database = fb.database(); 
        }
    }

我再次收到“Uncaught TypeError: fb.database is not a function(...)”。

在此先感谢,扬

4

1 回答 1

2

您可以在 firebase-auth 元素中获取 firebase 应用程序的引用。确保您在回调函数之外执行此操作,这样您就不必处理获取this. 如果必须,您可以执行.bind或箭头功能。

var app = this.$.auth.app;

然后,您可以app.database()替换火力基地之一。

于 2016-11-11T01:27:46.593 回答