2016-11-10 56 views
1

我是聚合物的新手,我一直在设置数据库数据。我管理使电子邮件身份验证工作,我需要在用户创建后保存用户数据。我使用firebase-app元素初始化应用程序。如何在使用Polymerfire时获取Firebase参考?

这里是重要的部分:创建成功

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 is not a function"

引发错误。我想这是因为我没有访问范围内的firebase.database函数。我发现many ways如何使用纯JavaScript解决问题,但我不确定官方的“聚合物方式”是什么。编辑: 我仍然无法得到它的工作。我设法得到应用程序对象的引用,但它似乎没有可用的数据库方法。我写了一个简单的功能进行调试:

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

我得到的“遗漏的类型错误:fb.database不是一个函数(......)”一次。

在此先感谢,扬

回答

2

你可以得到你的火力-auth元素里面的火力点应用的参考。确保你在回调函数之外执行此操作,因此您不必处理获得this的适当范围。如果你必须,你可以做.bind或箭头功能。

var app = this.$.auth.app; 

然后在那之后你可以做app.database()作为firebase的替代品。