假设我有一个 Firebase Node ,即 dbref = firebase.ref('/Transfer_Request/{pushID]/')。
并且客户端写入两个值; from_ID 和 to_ID 到 dbref。如何从 Firebase Cloud 函数获取 from_ID 和 to_ID 的单独值?
我的代码:
exports.TransferTicket = functions.database.ref('/Transfer_Request/{pushID}').onWrite((event) => {
const original = event.data.val();
const from_ID = original.from_ID;
const to_email_ID = original.to_ID;
//search for to_email ID
return admin.database().set("A transfer request was just made");
});
我收到两个错误:
1)
TypeError: admin.database(...).set is not a function at exports.TransferTicket.functions.database.ref.onWrite (/user_code/index.js:41:25) at Object. (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:59:27) at next (native) at /user_code/node_modules/firebase-functions/lib/cloud-functions.js:28:71 at __awaiter (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:24:12) at cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:53:36) at /var/tmp/worker/worker.js:716:24 at process._tickDomainCallback (internal/process/next_tick.js:135:7)
2)
TypeError: Cannot read property 'from' of null at exports.TransferTicket.functions.database.ref.onWrite (/user_code/index.js:35:25) at Object. (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:59:27) at next (native) at /user_code/node_modules/firebase-functions/lib/cloud-functions.js:28:71 at __awaiter (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:24:12) at cloudFunction (/user_code/node_modules/firebase-functions/lib/cloud-functions.js:53:36) at /var/tmp/worker/worker.js:716:24 at process._tickDomainCallback (internal/process/next_tick.js:135:7)
最佳答案
第一个问题来自这样一个事实:在执行以下操作时,您会错过 Firebase 引用
。
return admin.database().set("A transfer request was just made");
你应该这样做:
admin.database().ref('...the path where you want to write...').set("A transfer request was just made");
有关更多详细信息,请参阅 Reference 的文档和 Database .
第二个问题来自于新发布的 Firebase SDK for Cloud Functions 1.0.0 版本以来,语法发生了变化。请参阅此文档 item 。
您应该按如下方式修改代码:
exports.TransferTicket = functions.database.ref('/Transfer_Request/{pushID}').onWrite((change, context) => {
const original = change.after.val();
const from_ID = original.from_ID;
console.log(from_ID);
const to_email_ID = original.to_ID;
console.log(to_email_ID);
return admin.database().ref('...path...').set("A transfer request was just made")
.catch(error => {
console.log(error);
//...
});
});
关于javascript - 如何从 Firebase 数据库检索单个 JSON 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50791005/