我正在使用这样的东西:
int id = getSnapshots().getSnapshot(position).getId().hashCode();
那很好。不,我需要从DataSnapShot获取模型。那可能吗?我尝试过这样的事情:
Note note = getSnapshots().getSnapshot(getAdapterPosition())...
但是我不知道该如何完成甚至不可能。也许我需要一种完全不同的方式?
答案 0 :(得分:2)
假设您的onBindViewHolder()
方法具有一个名为ViewHolder
的{{1}}对象作为参数,要解决此问题,请使用以下代码:
viewHolder
假设您在模型类中有一个名为DocumentSnapshot snapshot = getSnapshots().getSnapshot(viewHolder.getAdapterPosition());
Note note = snapshot.toObject(Note.class);
Log.d("TAG", pm.getNodeId());
的文件和相应的名为nodeId
的getter,则logcat中的输出将是注释的所有ID。
答案 1 :(得分:1)
您可以将其转换。这是示例:
val yourModel = dataSnapshot.getValue(YourModelClass::class.java) as YourModelClass
就这样:)
java样式:
YourModelClass yourModel = (YourModelClass) getDataSnapshot().getValue(YourModelClass.class)