Я застрял в одном случае операции с пожарной базой в android. Мое требование:
У меня есть таблица Named: "Значения" Эта таблица значений содержит данные следующего типа.
{
"menu": [
{
"category": "cocktails",
"product": [
{
"id": "123",
"name": "test1"
},
{
"id": "456",
"name": "test2"
}
]
},
{
"category": "vodka",
"product": [
{
"id": "789",
"name": "test3"
},
{
"id": "901",
"name": "test4"
}
]
}
]
}
Теперь я хочу обновить идентификатор: 123 с именем = "test5" Как обновить этот вложенный объект массива в базе данных firebase в android?
Я попытался выполнить следующее, но он обновляет / добавляет весь массив меню, а не объект массива продукта перкулярно.
Я просто хочу обновить в объекте массива продукта.
Ниже приведен код, который я пробовал, но он обновляет весь массив меню.
val listPorduct = ArrayList<HashMap<String, Any>>()
for ((i, product) in productList.withIndex()) {
var productMap = HashMap<String, Any>()
productMap = hashMapOf(
"id" to "123",
"name" to "test5")
listPorduct.add(productMap)
}
val map = hashMapOf<String, Any>()
map.put("category", list[position].category)
map.put("product", listPorduct)
repository.getTabs().update("menu", FieldValue.arrayUnion(map))
, если я попробую с
repository.getTabs().update("menu/product", FieldValue.arrayUnion(map))
or
repository.getTabs().update("menu.product", FieldValue.arrayUnion(map))
, то получение вопроса / или точка не допускается. у меня есть последний файл Gradle Firebase.
Как обновить конкретную позицию объекта продукта? Пожалуйста, кто-нибудь может помочь мне решить это?
Образ базы данных Firebase.