更改所有唯一键中的特定值

Change certain value in all unique keys

所以我正在尝试编写 http 触发器函数,它会更改每个唯一键(用户 ID)中的特定值。我写了一些东西,但输出不是我需要的。它不会更改现有值,而是创建新的用户 ID。

const functions = require('firebase-functions')
const admin = require('firebase-admin')

admin.initializeApp(functions.config().firebase)

exports.picksReset = functions.https.onRequest((req, res) => {

  const ref = admin.database().ref()

  const usersPicked = []

  ref.child('users').once('value').then(snap => {
    snap.forEach(childSnap => {

      ref.child('/users/{userId}').push({picksDone: "0"})
      console.log("Changing value...")

    })
  })

  res.send("Done!")

})

我的数据库的图像...

使用 .push() 创建一个带有 pushId 的新 child。相反,使用 .update()。请参阅文档 here 中的详细信息。如果您想更改每个用户的 child picksDone,您可以这样做:

const functions = require('firebase-functions')
const admin = require('firebase-admin')

admin.initializeApp(functions.config().firebase)

exports.picksReset = functions.https.onRequest((req, res) => {

  const ref = admin.database().ref()

  const usersPicked = []

  ref.child('users').once('value').then(snap => {
    snap.forEach(childSnap => {
      const key = childSnap.key
      ref.child(`users/${key}`).update({picksDone: "0"})
      console.log("Changing value...")

    })
  })
  res.send("Done!")
})