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

Android 是否可以将DataSnapShot更改为模型?,android,google-cloud-firestore,android-adapter,datasnap,Android,Google Cloud Firestore,Android Adapter,Datasnap,我用的是这样的东西: int id = getSnapshots().getSnapshot(position).getId().hashCode(); Note note = getSnapshots().getSnapshot(getAdapterPosition())... 那很好用。不,我需要从DataSnapShot中获取模型。可能吗?我试过这样的方法: int id = getSnapshots().getSnapshot(position).getId().hashCo

我用的是这样的东西:

int id = getSnapshots().getSnapshot(position).getId().hashCode();  
Note note = getSnapshots().getSnapshot(getAdapterPosition())...  
那很好用。不,我需要从DataSnapShot中获取模型。可能吗?我试过这样的方法:

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

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

你可以转换它。下面是一个例子:

val yourModel = dataSnapshot.getValue(YourModelClass::class.java) as YourModelClass
就这样:)


java风格:

YourModelClass yourModel = (YourModelClass) getDataSnapshot().getValue(YourModelClass.class)

你可以转换它。下面是一个例子:

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());

假设您的模型类中有一个名为
nodeId
的指定对象和相应的名为
getNodeId()
的getter,日志猫中的输出将是注释的所有ID。

假设您的
onBindViewHolder()
方法有一个名为
ViewHolder
对象作为参数,要解决此问题,请使用以下代码:

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

假设您的模型类中有一个名为
nodeId
的fied和相应的getter名为
getNodeId()
,那么日志猫中的输出将是,您笔记的所有ID。

感谢您的帮助。唯一的问题是我在
onClick
中使用了这一行,因此我只使用
getAdapterPosition()
而不是
viewHolder.getAdapterPosition()
。但效果很好。再次感谢你的帮助。唯一的问题是我在
onClick
中使用了这一行,因此我只使用
getAdapterPosition()
而不是
viewHolder.getAdapterPosition()
。但效果很好。再次感谢