0

私は Polymer を初めて使用し、Firebase-document コンポーネントを使用してユーザー データを保存しようとしています。

関連するコード スニペットは次のとおりです。

コンポーネントの初期化:

    <firebase-document id="document" app-name="nameoftheapp"
                       path="[[userDataPath]]" data="{{userData}}">
    </firebase-document>

そしてJavaScriptの部分:

    Polymer({
        is: 'registration-view',

        properties: {
            userData: Object,
            userDataPath: {
                type: String,
                notify: true
            }
        },

        debugFunction: function () {
            user = this.domHost.user;
            this.userDataPath = '/users/' + user.uid;
            this.userData.firstName = "fname";
            this.userData.lastName = "lname";
            console.log(user);
            console.log(this.userDataPath);
            this.$.document.save(this.userDataPath).then(function () {
                console.log("success");
            });
        }, 
        ......

デバッグ関数を呼び出すと、

Uncaught (約束) TypeError: c[b] is not a function(…).

スタックトレース:

1) debugFunction @ registration-view.html:106
2) save @ firebase-document.html:82
3) (anonymous function) @ firebase-document.html:93
4) c @ firebase-app.js:formatted:939

最小化された firebase-app.js ファイルでエラーがスローされるため、私はそれほど賢くありません。うまくいけば、すべてが適切に構成されます。ユーザー認証はうまく機能し、アプリ名も問題ありません(アプリが初期化されていない場合、エラーがスローされます)。

データベース内のデータをモックしようとしましたが、firebase-document はそれらをロードしません。潜在的な承認の問題を排除するためにデータが公開されるようにデータベース ルールを設定しましたが、役に立ちませんでした。

{
  "rules": {
//     ".read": "auth != null",
    ".read": true,
//     ".write": "auth != null"
    ".write": true
  }
}

試行 2:

データを保存する別の方法を見つけました。コードは次のとおりです。

<firebase-document id="document" app-name="doctor-appointment-system" log>
</firebase-document>

Javascript 部分:

    debugFunction: function () {
        this.$.document.path = null;
        this.$.document.data = {
            'firstName': this.$.fninput.value,
            'lastName': this.$.lninput.value
        };
        console.log('users/' +  this.domHost.user.uid);
        this.$.document.save('users',  this.domHost.user.uid);
    },

このセットアップでは、別のエラーが発生します。コンソールからの出力は次のとおりです。

users/Z5uAEYO2S1g2JYClpkk1Vtw130i2

app-storage-behavior.html:350 users/Z5uAEYO2S1g2JYClpkk1Vtw130i2 の Firebase 値を Object {firstName: "", lastName: ""} に設定します

firebase-database-behavior.html:61 Uncaught (in promise) TypeError: Undefined(…)_setFirebaseValue のプロパティ 'ref' を読み取れません

firebase-database-behaviour.html の次の行で失敗します。

var result = this.db.ref(path).set(leaf ? value.$val : value);

構成に問題があるようですが、認証は正常に機能するため、私にはわかりません。

私はこれで立ち往生しているので、どんな助けにも感謝します。

ありがとう、ヤン

4

1 に答える 1