ForEach не работает в Firebase Cloud Functions - PullRequest
1 голос
/ 14 июля 2020

Итак, в основном я хочу перенести свои данные из базы данных Firebase Realtime в Cloud Firestore. Это то, что я сейчас пробовал:

bot.post('/', async (req, res) => {
  // const receivedTimestamp = Date.now()
  const telegramText = req.body
    && req.body.message
    && req.body.message.chat
    && req.body.message.chat.id
    && req.body.message.from
    && req.body.message.from.first_name

  if (telegramText && req.body.message === '/migrate') {
const snapAllUsersData = await admin.database().ref(`/Data/users/`).once("value").then(async function (allUsers: any) {
  let usersMigrated= 0
  allUsers.forEach((eachUser: any) => {
    usersMigrated= usersMigrated + 1
    const currentName = eachUser.val().name
    const currentCountry = eachUser.val().country 
                    
    admin.firestore().collection('users').doc(currentName.toLowerCase()).set({ "name": currentName, "country": currentCountry }, { merge: true }).then(() => {
      console.log(`${usersMigrated} | ${currentName} | ${currentCountry}`)
    }).catch((err) => {
      console.log(err)
    })
  });
  console.log(`${usersMigrated} migrated successfully`)
}).catch((errGettingData) => {
  console.log(errGettingData)
  return
})

})

В консоли Firebase нет журналов Либо: (

Подобный код работает в Node.JS проектах, которые я запускаю на своем GCP VM. SN Здесь не работает ....

Структура базы данных:

Data:
  users:
    User1:
      name: "Dharmaraj",
      country: "IN"
    User8:
      name: "Qwerty",
      country: "US"

PS: нет проблем с путями и чувствительностью к регистру

РЕДАКТИРОВАТЬ: Итак, теперь я запустил тот же самый КОД в проекте NODE.JS без облачных функций .... Просто запустил его в локальном терминале, и он работал очень гладко, и все данные были перенесены в течение 5 секунд ...

...