2016-11-10 8 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を使用して問題を解決する方法を見つけましたが、私は公式の "ポリマーの方法"は何か分かりません。

編集: まだ動作しません。私はアプリケーションオブジェクトの参照を取得することができましたが、利用可能なデータベースメソッドがないようです。もう一度:私は「fb.database機能(...)ではないキャッチされない例外TypeError」を取得

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

:私は、デバッグのための簡単な関数を書きました。事前に

おかげで、月

答えて

2

あなたのfirebase-auth要素の内部firebaseアプリの参照を取得することができます。あなたがthisの適切な範囲を得ることに対処する必要がないように、コールバック関数の外でこれを行うことを確認してください。必要があれば、.bindまたは矢印機能を使用できます。

var app = this.$.auth.app; 

その後、firebaseの代わりにapp.database()を実行できます。

関連する問題