如何在 Item Click 上从 FirebaseListAdapter 获取 obj 密钥。 Firebase 用户界面
Posted
技术标签:
【中文标题】如何在 Item Click 上从 FirebaseListAdapter 获取 obj 密钥。 Firebase 用户界面【英文标题】:How to get obj key from FirebaseListAdapter on Item Click. FirebaseUI 【发布时间】:2016-01-04 23:30:25 【问题描述】:在 FirebaseUI 中对 FirebaseListAdapter 进行子类化时,如何获取被点击项目的 obj 键?
FirebaseListAdapter 具有以下获取 itemId 的方法,但返回 long。但我需要默认字符串格式的对象键。
public long getItemId(int i)
return (long)this.mSnapshots.getItem(i).getKey().hashCode();
【问题讨论】:
【参考方案1】:FirebaseListAdapter
假定您始终知道正在与之交互的项目的索引/位置。鉴于 android 上下文,这是有道理的,因为集合视图是基于索引的。
知道位置后,您可以调用adapter.getRef(position)
来获取Firebase 对该对象的引用。在该参考上,您可以致电getKey()
获取密钥。虽然我建议仅作为最后的手段这样做。
【讨论】:
谢谢!是的,那会奏效。但由于我经常需要它来创建引用路径,我实际上刚刚开始在对象本身中存储键和 id,并发现它非常方便的模式。 我们在 FirebaseUI 团队中一直在讨论将 references 存储在对象本身中,但目前已决定不这样做。需要通用基类或注入器接口的开销似乎超过了通用用例的优势。当然,如果您有特定的用例,则考虑可能会有所不同。我仍然建议保留Firebase
参考而不是密钥。 Refs 是轻量级的,并且仅在键 String 上添加了一个不错的类型安全层。
一定要好好讨论。就我而言,它似乎很有用,因为我理解在多对多的关系案例中,您可能需要在他们自己的集合中为彼此创建倒排索引。因此默认情况下,firebase 参考在这种情况下会非常有用,并且可能在多对多建模需求建模中也经常需要。
同时存储 Firebase refs 是一个很好的建议。谢谢!
鉴于 Firebase 版本 3...现在提到的 Firebase
对象是要保留参考的?以上是关于如何在 Item Click 上从 FirebaseListAdapter 获取 obj 密钥。 Firebase 用户界面的主要内容,如果未能解决你的问题,请参考以下文章
如何在 RecyclerView 的 CardView 中实现对 Item Click 的操作以显示结果
如何将值从 Item Click RecyclerView 发送到另一个 java 类