2

firebase にデータを遅延ロードさせることはできますか? 私のアプリが、ユーザーが折りたたんだり、展開したり、変更したりできる100万個のノードを持つツリーで構成されているとしましょう。これらのノードの大部分は、ほとんどの場合折りたたまれたままになるため、すべてをメモリに保持することは意味がありません。私が知る限り、firebase は起動時にデータベース内のすべてをクライアントに転送し、他の方法で使用することを意図していません。あれは正しいですか?

4

1 に答える 1

5

それは正しくありません。Firebase は、リクエストされた場合にのみデータを同期します。このようなことを達成するには、データをどのように保存するかがすべてです。

たとえば、単純な例は次の構造で、目的の結果が得られます。

/records/root/record1
/records/root/record2
/records/record1/record1-1
/records/record2/record2-1

ref.child('root_level').on('child_added'...)これで、開始点ができました。ノードが展開されたら、child_added子パスで a を実行します。

優先度を使用して、すべてのレコードを同じパスに保存し、優先度に基づいて必要なものだけをロードすることもできます。

/records/record1 (priority null)
/records/record2 (priority null)
/records/record1-1 (priority 'record1')
/records/record2-1 (priority 'record2')

ここで、ルート レコードを取得するには、次を使用します。

ref.child('records').startAt(null).endAt(null)

ノードが展開されている場合は、次を使用します。

ref.child('records').startAt(parentId).endAt(parentId)
于 2013-04-27T19:49:56.133 に答える