【发布时间】:2021-04-16 04:12:15
【问题描述】:
我的 firebase 实时数据库中有以下结构:
- 艺术家
- 艺术家ID
- 姓名
- 绘画列表
- 绘画ID1
- 绘画ID2
- 艺术家ID
- 画作(可以有
- 绘画ID1
- 副本
- 价格
- 绘画ID2
- 副本
- 价格
- ...
- 绘画IDX
- 副本
- 价格
- 绘画ID1
现在我想监听特定绘画 ID 和特定 ArtistID 的变化。 比如我想听 PaintingID1, PaintingID6, PaintingID7, PaintingID11。
到目前为止我的存储库代码:
override fun observeThisPainting(painting: Painting, receiveDataFromBackendCallback: DataFromBackendCallback<Painting>) {
this.receiveDataFromBackendCallback = receiveDataFromBackendCallback
val myRef = database.child("paintings").child(painting.paintingId)
myRef.addValueEventListener(this)
}
override fun onDataChange(snapshot: DataSnapshot) {
val painting = snapshot.getValue(Painting::class.java)
painting?.let { receiveDataFromBackendCallback.onSuccess(it) }
}
override fun onCancelled(error: DatabaseError) {
}
- 我的 RTDB 的架构是否正确?在我的第一次尝试中,我将所有画作保存在艺术家 listOfPaintings 中。现在我只在那里为他们保存密钥。
- 如何从我的视图模型中侦听特定节点的对象子集? (我知道如何监听绘画节点的所有项目,但我想知道是否有办法监听该节点的特定项目)
感谢您的想法!
【问题讨论】:
标签: android firebase kotlin firebase-realtime-database event-listener