0

これまでのところ、Firebase が、返される「スナップショット」、つまりデータ レコードのラッパーを介して、特定のデータ レコードごとに一意の識別子 (実際には完全な URL) を利用できるようにしているという議論や認識は見たことがありません。 (snapshot.val() 経由でアクセス)。スナップショットの基本的なプロパティを調べたところ、一意の URL が利用できることがわかりました (以下の例を参照)。しかし、何らかの理由で、Firebase が数日ごとにキーの名前を変更し続け、アプリケーションが壊れているようです。新しい URL プロパティ キーを再検出し、再び機能するように変更する必要があります。

これまでに私が見てきた主な変化の 3 つの例を次に示します。各値は同じですが、キーは時間とともに変化し続けます (例: "Wb"、"Xb"、"bc"):

getMemberBySnapshot - snapshot has prop Wb with value https://prototype1.firebaseio.com/users/-IwohKfw1l5F3gFqyJJ5

getMemberBySnapshot - snapshot has prop Xb with value https://prototype1.firebaseio.com/users/-IwohKfw1l5F3gFqyJJ5

getMemberBySnapshot - snapshot has prop bc with value https://prototype1.firebaseio.com/users/-IwohKfw1l5F3gFqyJJ5

一意のキーが必要な場合は開発者が電子メール アドレスを使用する必要があるという Firebase の提案を読みました (私のモデルが電子メール フィールドを使用しない場合はどうなりますか? ユーザーが電子メールを変更したい場合はどうしますか?)、または Firebase は代わりに既存のものをすべて取得することを提案します。クライアント上でそれらを検索します。これらの解決策はどちらも満足のいくものではありません。しかし、「スナップショット」の各データ レコードに一意の URL を提供しているようです。開発者が一貫して呼び出すことができるように、安定化されたキーを提供しないのはなぜですか???

4

1 に答える 1

2

Firebase.js はコンパイル済みのスクリプトです。内部変数の名前は、コンパイルして新しいバージョンをリリースするたびに変更されるため、Web サイトに記載されていないプロパティに依存しないでください。

特定のケースでは、次を使用する必要があります。

snapshot.ref().toString()

URLを取得するためです。

于 2013-07-19T23:26:25.273 に答える