Firestore本地过滤
Firestore每读取10万次读取配额和价格。 在基于关系的数据库中,我有非常简单的任务,但是对于Firestore而言,这看起来像是开销:
- 我有Firestore集合的“文章”,每篇文章都有字段“views_by_uids”作为Firebase用户UID的数组
- 我已经阅读了10万篇文章(简称)
- 我想为我的UID获取UNREaded文章
我是否真的需要用分页来查询这个100K的参考文章,例如每页50个项目,以便过滤LOCALLY(通过我的弱移动网络发送太多的数据),最后得到UNREaded文章来显示?
编辑:澄清这里是我如何用Kotlin在Android中创建“文章”:
data class Article ( val title: String, val text: String, val ownerUid: String, @ServerTimestamp val creationDate: Date? = null)
//写满文章到firestore
val article = Article (title = "test title" text = "test text", ownerUid = FirebaseAuth.getInstance().uid!!) val articleRef = FirebaseFirestore.getInstance() .collection(Article.COLLECTION_NAME) .document() .set(article) .addOnFailureListener { ...just show error } .addOnSuccessListener { ...just show success }
显示不是由我写的文章列表由FirestoreRecyclerAdapter制作,其中包含以下选项:
val query = FirebaseFirestore.getInstance() .collection(Article.COLLECTION_NAME) .orderBy("creationDate", Query.Direction.DESCENDING) .limit(ITEMS_PER_QUERY_LIMIT) FirestoreRecyclerOptions.Builder() .setQuery(query, Task::class.java) .build()
现在我真的不明白如何过滤传入的项目,并只显示其中ownerUid!= FirestoreAuth.getInstance()。uid!
我只是通过项目根LayoutParams隐藏RecyclerView项目 – 疯狂! 🙁
我想我需要自定义适配器EXCLUDE我的文章DocumentSnapshots?
– 在这种情况下,这意味着如果我已经写了100K的文章,我需要通过网络来获得他们所有的只是排除和不显示?
- Firebase对象没有setter / getter
- Firestore与Firebase的离线问题
- Firebase – 使用userProperty的RemoteConfig返回默认值
- OneSignal:onNotificationProcessing在一段时间后不会被调用
- 加载图像从毕加索的Firebase存储到Infowindow的ImageView,毕加索只显示占位符
- kotlin对象的空构造函数使用Firebase
- 将Firebase中的数据加载到ExpandableList
- 如何在Kotlin上使用Firebase UI数据库?
- 从Firebase数据库检索数据:发送给实例的无法识别的选择器