簡體   English   中英

從 node.js 中的 childByAutoId 讀取數據

[英]read data from childByAutoId in node.js

我正在嘗試從 childByAutoId() 保存的 firebase 讀取數據。 我可以成功讀取上半部分,但讀取的是 childByAutoId() 是什么。 例如。

圖一

在我的 firebase 函數中是

圖 2

記錄器 -- 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM