Embid123:
私はアンドロイドのための飛行計画を書いています。特定のREST APIを使用するために私は各空港のためのICAO識別子を必要としています。私はfirestoreから14K程度documnetsを取得し、オブジェクトにマップしようとしています。私のfirestoreの構造:
その結果、私はお返しにexacly 7698文書たびを得ました。
val db = Firebase.firestore
val airports = db.collection("airport")
val myColl : ArrayList<AirportDAO> = arrayListOf()
val start = System.currentTimeMillis()
var end : Long
airports.get().addOnSuccessListener {
end = System.currentTimeMillis()
Log.d("firebase", (end - start).toString())
val docs = it.documents
Log.d("size", it.size().toString()) // <-- 7698
for (doc in docs) {
val a = doc.toObject(AirportDAO::class.java)
if (a != null)
myColl.add(a)
}
Log.d("size", myColl.size.toString()) // <-- 7698
}
この方法はget()
、すべてのDocumentSnapshotsを返す必要があります。私は知りません任意の制限はありますか?
@Edit:私のコレクションの終わり。ポーランドで「ソート」「Filtruj」手段
アレックス・マモ:
以下の参考文献にリスナーを追加します。
val airports = db.collection("airport")
これは、すべて取得すること希望を意味しAirportDAO
、あなたの内に存在するオブジェクトairport
のコレクションを。あなたのサイズ場合はmyColl
リストである7698
、それはあなたが課金されますことを意味7698あなたが私の意見ではかなり多くあり、そのコレクションにアクセスするときの読み出し動作。
私は私のコレクションに正確に14110文書を持っています。
いいえ、あなたはしないでください!あなたはあなたのコードが言うものだという、まさに7698を持っています。
あなたは結果をフィルタリングする場合は、あなたが使用する必要がありますQuery
。あなたは常にそれらのすべてをする必要があります場合は、Firestoreで大量のトラフィックを作成します。