[英]read data from childByAutoId in node.js
我正在嘗試從 childByAutoId() 保存的 firebase 讀取數據。 我可以成功讀取上半部分,但讀取的是 childByAutoId() 是什么。 例如。
在我的 firebase 函數中是
記錄器 -- uid is BoSwank... 是正確的,但是在下面的行中
logger -- workerId 是 -MBauxL.... 不正確。 這是 childByAutoID() 的值,它應該是 hkKplzF...
我如何嘗試讀取這些數據如下。
exports.observeNotifications = functions.database.ref('/notifications/{cardUID}/{workerId}').onCreate((snapshot, context) => {
var uid = context.params.cardUID;
var workerId = context.params.workerId;
console.log('LOGGER --- uid is ' + uid);
console.log('LOGGER --- workerId is ' + workerId)
})
我想將 /notifications/{cardUID}/{workerId} 更改為 /notifications/{cardUID}/{cardUID/workerId}
然后改變
var workerId = context.params.workerId;
至
var workerId = context.params.cardUID.workerId;
會做的伎倆,但它沒有。
使用 Cloud Functions 數據庫觸發器,路徑中的通配符僅匹配節點名稱。 他們從不符合任何孩子的價值觀。 你現在看到的是預期的行為,沒有辦法改變它。
如果您想要路徑中匹配位置下的子項值,則必須使用傳遞給 function 的snapshot
參數來訪問它。 它是一個DataSnapshot object,包含路徑中匹配的位置下所有子項的所有值。
在您的情況下, workerId
的值將如下所示:
const workerId = snapshot.val().workerId
我建議閱讀文檔以獲取有關數據庫觸發器如何工作的更完整信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.