Функции Firebase: Node.js: итерация карты, хранящейся в поле документа Firebase - PullRequest
0 голосов
/ 27 апреля 2020

Я изо всех сил пытаюсь найти документацию по использованию карт, извлеченных из firebase, в триггерах функций, которые я создаю с использованием Node.js. Каждый раз, когда я нахожу пример кода, он использует функции, которые не понимает мой индексный файл. js.

Пример структуры БД: db.collection делать ( 'пользователей'). c ( 'аб c') пусть 'ab c' содержит одно поле с именем 'uids', которое представляет собой Map of String, bool

Я хочу перебрать карту 'uids' в моей триггерной функции Firebase, чтобы обновить все элементы, имеющие значение " false "

Я не могу найти подходящий способ для каких-либо манипуляций / logi c с использованием карт в моем индексе. js.

Это два наиболее последовательных фрагмента Я пробовал, нашел в Интернете:

db.collection('users').doc('abc').get().then((doc) => {
  var uids = doc.data().uids;

//try 1
  uids.forEach((value, key, map) => {
    //do stuff
  });

//try 2
  for (var uid in uids) {
    if (uid.val() == false)
      //do stuff
  }
});

При поиске определенного синтаксиса c для моего индекса. js кода, я неправильно понимаю, что это файл Node.js? Я не понимаю, почему я нахожу десятки способов сделать то же самое. Кажется, что везде размещены совершенно случайные решения, которые не работают в моем файле.

РЕШЕНИЕ :: Спасибо за комментарии и ответ, чтобы помочь решить эту проблему. Мне удалось разыграть карту Firebase, используя «Object.elemets (uids)» для извлечения ключей и значений.

for (let [key, value] of Object.elements(uids)) {
  //do stuff
}

1 Ответ

1 голос
/ 28 апреля 2020

Можете ли вы попробовать:

db.collection('users').doc('abc').get().then((doc) => {
  var uids = doc.data().uids;
  for (var uid of Object.keys(uids)) {
    console.log(uid, uids[uid]); // key, value
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...