2016-11-10 25 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的替代品。