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