Сделайте дебат с Firebase Functions - PullRequest
1 голос
/ 25 мая 2019

Я бы хотел сделать что-то подобное с функциями Firebase

enter image description here

, но медленнее .Поэтому я пишу в БД реального времени, и через несколько минут она будет установлена ​​на false.

Это моя попытка:

const debounce = require('lodash.debounce') // "^4.0.8"
...
exports.deviceConnected = functions.https.onRequest((request, response) => {
  const now = `${format(new Date(), 'YYYY-MM-DD HH:mm:ss')}`
  return admin
    .database()
    .ref('connected')
    .set(now)
    .then(() => response.send(`Connected updated ${now}`))
})

function deviceDisconnect() {
  admin
    .database()
    .ref('connected')
    .set(false)
}

exports.updateDeviceConnection = functions.database
  .ref('connected')
  .onUpdate((change, context) => {
    const connected = change.after.val()
    if (connected) {
      debounce(deviceDisconnect(), 7000, {
        leading: false,
        trailing: true,
      })
    }
    return true
  })

Для разработки я использую 7 сек (7000мс).Первый триггер кажется медленным, но после этого он незамедлительный и не вызывает спама.

firebase example of the issue

...