Есть ли способ сопоставить мой идентификатор документа с toObject? - PullRequest
0 голосов
/ 29 марта 2020

Я десериализирую весь документ, чтобы держать вещи под рукой и мешать мне проверять каждое значение и создавать объект, который я использую

myList.add(documentSnapshot.toObject(House::class.java))

Теперь, допустим, Хаус это

data class House(val name:String,val:address:String)

Теперь, если я хочу также получить идентификатор документа Дома и поместить его в свой документ, я делаю это

data class House(val houseId:String,val name:String,val:address:String)

Но после этого первая строка кода преобразуется в

 val houseId = documentSnapshot.id
 val houseName = docuementSnapshot.getString("name")
 val houseAddress = documentSnapshot.getString("address")
 myList.add(House(houseId,houseName,houseAddress))

Что я хочу сделать, это использовать .toObject(), чтобы также отобразить это дополнительное поле, которое является идентификатором документа внутри него, потому что, если объект House расширяется в размере, мне нужно будет вручную написать каждое свойство, и теперь подумайте, что дом имеет 100 свойств, и мне просто нужен его идентификатор внутри объекта. Мне нужно будет списать 99 полей get, чтобы просто разместить идентификатор документа внутри этого домашнего объекта.

Есть ли способ сопоставить этот идентификатор с объектом, не выполняя описанного выше и просто поместив .toObject?

Спасибо

1 Ответ

1 голос
/ 30 марта 2020

Я хочу использовать .toObject (), чтобы также сопоставить это дополнительное поле с идентификатором документа

Это будет возможно, только если документ уже содержит id свойство, которое содержит идентификатор документа в качестве значения. Если у вас есть только name и address, вы не можете отобразить id, потому что его нет в документе. Чтобы иметь возможность отобразить все эти три свойства, вы должны обновить каждый документ в этой коллекции, чтобы он содержал идентификатор документа. Если в коллекции много документов, я рекомендую использовать пакетных записей .

Сразу после этого вы сможете использовать:

val house = documentSnapshot.toObject(House::class.java)

И теперь этот house объект будет также содержать id.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...