【问题标题】:Obtaining user uids in a Firebase Cloud Function在 Firebase 云函数中获取用户 uid
【发布时间】:2017-11-22 22:46:31
【问题描述】:

下面是我的数据库节点的 JSON:

{
  "1YrpX2W2xnMPoy4YGpZcOE0xJ5g2" : {
    "email" : "muyi@hotmail.com",
    "fullname" : "Muyiz",
    "selection" : [ 1, 2, 3, 4, 5, 6 ],
    "teamname" : "awon",
    "total" : 12,
    "userName" : "motmail.com",
    "week1" : 0,
    "week10" : 0,
    "week11" : 0,
    "week12" : 0,
    "week2" : 0,
    "week3" : 0,
    "week4" : 0,
    "week5" : 0,
    "week6" : 12,
    "week7" : 0,
    "week8" : 0,
    "week9" : 0
  },
  "6K9rQiZQ3jaV38WWtDbNwxhqIwc2" : {
    "email" : "domi@gmail.com",
    "fullname" : "Dai",
    "selection" : 0,
    "teamname" : "Bayern Neverlosin'",
    "total" : 0,
    "userName" : "dai@gmail.com",
    "week1" : 0,
    "week10" : 0,
    "week11" : 0,
    "week12" : 0,
    "week2" : 0,
    "week3" : 0,
    "week4" : 0,
    "week5" : 0,
    "week6" : 0,
    "week7" : 0,
    "week8" : 0,
    "week9" : 0
  },
  "9OgN4HyMtARaQEQV1mKQ5lyE1992" : {
    "email" : "jonail.com",
    "fullname" : "Jon",
    "selection" : [ 40, 8, 10, 24, 18, 34 ],
    "teamname" : "Chad fc",
    "total" : 0,
    "userName" : "jojin@gmail.com",
    "week1" : 0,
    "week10" : 0,
    "week11" : 0,
    "week12" : 0,
    "week2" : 0,
    "week3" : 0,
    "week4" : 0,
    "week5" : 8,
    "week6" : 0,
    "week7" : 0,
    "week8" : 0,
    "week9" : 0
  },
  "AGVZAUye5ZbZgvwCOpMeDkoOsEU2" : {
    "email" : "ihe@gmail.com",
    "fullname" : "Emeka Iheme",
    "selection" : 0,
    "teamname" : "Young Money",
    "total" : 0,
    "userName" : "ihem@gmail.com",
    "week1" : 0,
    "week10" : 0,
    "week11" : 0,
    "week12" : 0,
    "week2" : 0,
    "week3" : 0,
    "week4" : 0,
    "week5" : 0,
    "week6" : 0,
    "week7" : 0,
    "week8" : 0,
    "week9" : 0
  }
}

有没有办法访问用户节点下每个用户的用户uid?

目标是在我的云函数中运行以下代码:

ref = admin.database().ref(`/users/${user.uid}/week1`);

但就目前而言,以下云函数返回用户未定义的错误:

exports.update = functions.database.ref('/users/{uid}')
    .onWrite(event=>{
ref = admin.database().ref(`/users/${user.uid}/week1`);
return ref.set(50);

}

【问题讨论】:

    标签: firebase firebase-realtime-database google-cloud-functions


    【解决方案1】:

    在数据库触发器中定义通配符时:

    functions.database.ref('/users/{uid}')
    

    uid 通配符可以作为 event.params.uid 从传递的事件中访问。更多信息请参考documentation

    【讨论】:

    • 谢谢。但这样做的结果是在我的 firebase 数据库中创建了一个节点,其键为 {uid},值为 50,而不是为每个用户设置值 50。
    猜你喜欢
    • 2018-09-02
    • 2018-02-08
    • 1970-01-01
    • 2020-11-30
    • 1970-01-01
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 2019-05-28
    相关资源
    最近更新 更多