如何在 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 类

如何在@click 事件中获取组件实例?

element ui的 el-dropdown-item标签点击事件

vue组件添加事件@click.native

如何在iFrame中添加原始关闭按钮?