是否可以将 DataSnapShot 更改为模型?
Is it possible to change a DataSnapShot to a Model?
我正在使用这样的东西:
int id = getSnapshots().getSnapshot(position).getId().hashCode();
效果很好。不,我需要从 DataSnapShot 获取模型。那可能吗?我试过这样的事情:
Note note = getSnapshots().getSnapshot(getAdapterPosition())...
但我不知道如何完成它,或者即使它可能。也许我需要一种完全不同的方式?
你可以转换它。这是示例:
val yourModel = dataSnapshot.getValue(YourModelClass::class.java) as YourModelClass
就是这样:)
java 风格:
YourModelClass yourModel = (YourModelClass) getDataSnapshot().getValue(YourModelClass.class)
假设您的 onBindViewHolder()
方法有一个名为 viewHolder
的 ViewHolder
对象作为参数,要解决这个问题,请使用以下代码:
DocumentSnapshot snapshot = getSnapshots().getSnapshot(viewHolder.getAdapterPosition());
Note note = snapshot.toObject(Note.class);
Log.d("TAG", pm.getNodeId());
假设您的模型 class 中有一个名为 nodeId
的字段和相应的 getter 名为 getNodeId()
,您的 logcat 中的输出将是, 你所有笔记的id。
我正在使用这样的东西:
int id = getSnapshots().getSnapshot(position).getId().hashCode();
效果很好。不,我需要从 DataSnapShot 获取模型。那可能吗?我试过这样的事情:
Note note = getSnapshots().getSnapshot(getAdapterPosition())...
但我不知道如何完成它,或者即使它可能。也许我需要一种完全不同的方式?
你可以转换它。这是示例:
val yourModel = dataSnapshot.getValue(YourModelClass::class.java) as YourModelClass
就是这样:)
java 风格:
YourModelClass yourModel = (YourModelClass) getDataSnapshot().getValue(YourModelClass.class)
假设您的 onBindViewHolder()
方法有一个名为 viewHolder
的 ViewHolder
对象作为参数,要解决这个问题,请使用以下代码:
DocumentSnapshot snapshot = getSnapshots().getSnapshot(viewHolder.getAdapterPosition());
Note note = snapshot.toObject(Note.class);
Log.d("TAG", pm.getNodeId());
假设您的模型 class 中有一个名为 nodeId
的字段和相应的 getter 名为 getNodeId()
,您的 logcat 中的输出将是, 你所有笔记的id。