Firestore удалить ключ во вложенном словаре (карта) - PullRequest
0 голосов
/ 30 октября 2019

Я пытаюсь удалить ключи во вложенном словаре со значениями 0:

{
"keyA": {
        "keyA1": 10,
        "keyA2": 0,
        "keyA3": 3,
    },
"keyB": {
        "keyB1": 2,
        "keyB2": 6,
        "keyB3": 0,
    },
}

Я пробовал каждую комбинацию, используя .DELETE_FIELD

database.collection("cases").document("ari_test").update({
        f"someMap": {
            "keyA": {
                database.field_path("keyA2"): firestore.DELETE_FIELD
            }

        }
    })

Я получаюошибка:

ValueError: Cannot update with nest delete: FieldPath('someMap','keyA','`keyA2`')

Нужно ли .get() весь dict, обновить его на python, а затем перезаписать всю карту в firestore?

1 Ответ

1 голос
/ 30 октября 2019

Используйте путь с точечной нотацией для обновления вложенных полей, например:

database.collection('cases').document('ari_test').update({
        'someMap.keyA.keyA2': firestore.DELETE_FIELD
        })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...