我如何获取数据快照,然后在 firebase 云函数 http 请求中更新数据库
How can i get data snapshot and then update database in firebase cloud functions http request
我正在尝试在云函数的 HTTPS 请求中获取 firebase 实时数据库的数据快照,然后将来自查询的值添加到快照值并再次将其设置到数据库。
这是我的代码。
exports.addCredits = functions.https.onRequest((req, res)=>{
console.log(req.query.UserID);
var credits = req.query.amount
var userId = req.query.UserID
return admin.database().ref('/Users/' + userId).once('value').then(function(snapshot) {
var userPoints = snapshot.val().Credit
const databaseRef = admin.database().ref("Users").child(userId+"/Credit")
res.send("Your Credits "+ credits + " And User ID " + userId + " user points" + userPoints);
var total = credits + userPoints
databaseRef.set(total);
})
})
部署代码时终端出现错误。
18:70 warning Unexpected function expression prefer-arrow-callback
18:70 error Each then() should return a value or throw promise/always-return
如何获取我的数据库的快照并再次写入?
这些错误消息对 Ganesh 很有帮助,请阅读它们...
18:70 warning Unexpected function expression prefer-arrow-callback
是一个警告,表示您应该使用 ES6 箭头函数语法而不是带有单词“function”的老式语法:
return admin.database().ref('/Users/' + userId).once('value').then( snapshot => {
然后是实际的错误...
18:70 error Each then() should return a value or throw promise/always-return
告诉你每次使用.then()
,内部函数都需要return一些东西。
return admin.database().ref('/Users/' + userId).once('value').then( snapshot => {
var userPoints = snapshot.val().Credit
const databaseRef = admin.database().ref("Users").child(userId+"/Credit")
res.send("Your Credits "+ credits + " And User ID " + userId + " user points" + userPoints);
var total = credits + userPoints
databaseRef.set(total);
// You are inside of a .then() block here...
// you HAVE return SOMETHING...
// if you want, you could do: return databaseRef.set(total);
// or even just: return true;
})
我正在尝试在云函数的 HTTPS 请求中获取 firebase 实时数据库的数据快照,然后将来自查询的值添加到快照值并再次将其设置到数据库。
这是我的代码。
exports.addCredits = functions.https.onRequest((req, res)=>{
console.log(req.query.UserID);
var credits = req.query.amount
var userId = req.query.UserID
return admin.database().ref('/Users/' + userId).once('value').then(function(snapshot) {
var userPoints = snapshot.val().Credit
const databaseRef = admin.database().ref("Users").child(userId+"/Credit")
res.send("Your Credits "+ credits + " And User ID " + userId + " user points" + userPoints);
var total = credits + userPoints
databaseRef.set(total);
})
})
部署代码时终端出现错误。
18:70 warning Unexpected function expression prefer-arrow-callback
18:70 error Each then() should return a value or throw promise/always-return
如何获取我的数据库的快照并再次写入?
这些错误消息对 Ganesh 很有帮助,请阅读它们...
18:70 warning Unexpected function expression prefer-arrow-callback
是一个警告,表示您应该使用 ES6 箭头函数语法而不是带有单词“function”的老式语法:
return admin.database().ref('/Users/' + userId).once('value').then( snapshot => {
然后是实际的错误...
18:70 error Each then() should return a value or throw promise/always-return
告诉你每次使用.then()
,内部函数都需要return一些东西。
return admin.database().ref('/Users/' + userId).once('value').then( snapshot => {
var userPoints = snapshot.val().Credit
const databaseRef = admin.database().ref("Users").child(userId+"/Credit")
res.send("Your Credits "+ credits + " And User ID " + userId + " user points" + userPoints);
var total = credits + userPoints
databaseRef.set(total);
// You are inside of a .then() block here...
// you HAVE return SOMETHING...
// if you want, you could do: return databaseRef.set(total);
// or even just: return true;
})