# #android #kotlin #firebase-realtime-database
Вопрос:
У меня проблема с объектом, а именно, при создании списка объектов он получает ошибку, как в названии.
Код Котлина
private fun readNotification() { val firebaseUser = FirebaseAuth.getInstance().currentUser val reference = FirebaseDatabase.getInstance().getReference("Notifications") .child(firebaseUser!!.uid) reference.addValueEventListener(object : ValueEventListener{ override fun onDataChange(dataSnapshot: DataSnapshot) { notificationList.clear() for (snapshot : DataSnapshot in dataSnapshot.children){ val notification = snapshot.getValue(NotificationData::class.java)!! notificationList.add(notification) } notificationList.reverse() notificationAdapter.notifyDataSetChanged() } override fun onCancelled(error: DatabaseError) { } }) }
Объектный код
class NotificationData( var userId: String = "", var text: String = "", var postId: String = "", var isPost: Boolean = false ) {}
Структура огневой базы
Я знаю, что ошибка в этой строке, потому что объект имеет логическую переменную
val notification = snapshot.getValue(NotificationData::class.java)!!
Я просто не знаю, как с этим теперь справиться
Ответ №1:
Хотя я думал, что картограф Firebase JSON обрабатывает isBla
получатели формата, в вашем JSON есть только одно логическое значение, поэтому имеет смысл, что проблема возникает именно там.
Вы можете изменить логическое значение на это:
var post: Boolean = false
Или добавьте явную @PropertyName
аннотацию:
@PropertyName("post") var isPost: Boolean = false
Тем не менее, я думаю, что картограф Firebase по умолчанию ожидает, что он будет обрабатывать логические isXyz
свойства, поэтому я бы рекомендовал добавить запрос функций в репозиторий Github SDK.