Как я могу сохранить в пакетном скрипте пользовательскую переменную в качестве имени поля для добавления - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь создать шаблон в базе данных типа «многие ко многим». У пользователя может быть набор друзей, которые структурированы в Firebase следующим образом:

<friends-collection>
    <user-id>{
        FdiIcNy8dYCxUjjC9D0w: true
        GjMTvIctZCYJvNLZPH4r: true
    }

Каждое имя нового поля является идентификатором документа

Я попытался сделать это следующим образом:

const petitionerFriendsRef = db.doc('friends/${request.petitioner.id}');
    batch.set(petitionerFriendsRef,
        {
        request.requested.id: true,
        },
        { merge: true }
    );

Но это явно недопустимый вариант.

Есть несколько примеров в firebase, таких как:

let nycRef = db.collection('cities').doc('NYC');
batch.set(nycRef, {name: 'New York City'});

Но ни в одном из них они не добавляют пользовательскую переменную к имени поля

После выполнения нескольких запросов в Google я не могу найти ни одного примера этой операции при пакетной записи. Как я мог это сделать?

1 Ответ

0 голосов
/ 16 апреля 2020

Это не проблема с Firestore. Вы можете просто использовать синтаксис JavaScript, чтобы использовать значение выражения в качестве свойства объекта.

batch.set(petitionerFriendsRef, {
    [request.requested.id]: true,
},
    { merge: true }
);

Обратите внимание на использование квадратных скобок вокруг request.requested.id

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