是否可以将 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() 方法有一个名为 viewHolderViewHolder 对象作为参数,要解决这个问题,请使用以下代码:

DocumentSnapshot snapshot = getSnapshots().getSnapshot(viewHolder.getAdapterPosition());
Note note = snapshot.toObject(Note.class);
Log.d("TAG", pm.getNodeId());

假设您的模型 class 中有一个名为 nodeId 的字段和相应的 getter 名为 getNodeId(),您的 logcat 中的输出将是, 你所有笔记的id。