是否可以将DataSnapShot更改为模型?

时间:2018-08-29 11:46:15

标签: android google-cloud-firestore android-adapter datasnap

我正在使用这样的东西:

int id = getSnapshots().getSnapshot(position).getId().hashCode();  

那很好。不,我需要从DataSnapShot获取模型。那可能吗?我尝试过这样的事情:

Note note = getSnapshots().getSnapshot(getAdapterPosition())...  

但是我不知道该如何完成甚至不可能。也许我需要一种完全不同的方式?

2 个答案:

答案 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)