Как предотвратить облачный Firestore от разделения ключа карты? - PullRequest
0 голосов
/ 18 января 2019

Я пытаюсь обновить документ в Firestore из облачной функции, добавив карту, например так:

const data = {
        [email]: {
            somedata: somedata,
            somedata: somedata
        }
    };
docRef.update(data)

Проблема в том, что Firestore разбивает электронную почту и создает вложенную карту. Например, если адрес электронной почты name@email.com, значение, сохраненное в Firestore, равно:

name@email
  com
    somedata: somedata
    somedata: somedata

Я бы предпочел, чтобы это письмо не было разделено. Возможно ли это с Firestore?

1 Ответ

0 голосов
/ 18 января 2019

Адрес электронной почты содержит символ точки (.). Этот символ считается разделителем полей, если он задан в виде необработанной строки, как в вашем примере. Firestore предполагает, что вы хотите установить в поле «name @ email» со ​​свойством «com» ​​значение указанного вами объекта. См. «Ограничения на пути к полям» в документации .

Я не верю, что есть способ обойти это. Возможно, вы захотите перевести эту точку в какой-либо другой символ (возможно, такой, который не может быть указан в адресах электронной почты) перед доступом к базе данных. Все ваши запросы, использующие это поле, должны быть переведены аналогичным образом.

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