Можно ли изменить DataSnapShot на модель? - PullRequest
0 голосов
/ 29 августа 2018

Я использую такие вещи:

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

Это прекрасно работает. Нет, мне нужно получить модель из DataSnapShot. Это возможно? Я пробовал что-то вроде этого:

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

Но я не знаю, как это закончить или даже если это возможно. Может мне нужен совершенно другой способ?

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Предполагая, что ваш метод onBindViewHolder() имеет в качестве аргумента объект ViewHolder с именем viewHolder, чтобы решить эту проблему, используйте следующий код:

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

Предполагая, что в вашем классе модели есть файл с именем nodeId и соответствующий метод получения с именем getNodeId(), в вашем logcat будут выводиться все идентификаторы ваших заметок.

0 голосов
/ 29 августа 2018

вы можете конвертировать. вот пример:

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

вот и все:)


стиль Java:

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