如何获取通过.onWrite云函数事件返回的动态通配符子密钥的值?

时间:2018-11-30 21:15:54

标签: json google-cloud-functions

我在具有以下JSON嵌套结构的路径上设置了Firebase云函数观察器:

$myUID: {
     places : {
        $placeID: {
            $myUID_checkedIn = "false";                                 [line4]
            $someoneElseUID_checkedIn = "true";
        },
     }
   }

设置观察者以观察:

exports.observePlaces = functions.database.ref('users/{userID}/places/{placeID}').onWrite((change,context)

我想从[line4]中的JSON结构中检索动态键“ $ myUID_checkedIn”的值。

我尝试使用以下内容:

const uid = context.params.userID; //VALID
const dataSnapshot = change.after.val(); //VALID
const isCheckedIn = dataSnapshot.(`${uid}_checkedIn`); //INVALID     [line11]

但是,我无法使用这种方法在[line11]中检索动态键的值。

鉴于我的数据结构方式,这是否有可能实现?

如果是这样,我应该如何检索该值?

1 个答案:

答案 0 :(得分:0)

当属性名称不是文字标识符时,您需要使用JavaScript正确索引属性名称。方括号用于此目的:

const isCheckedIn = datasnapShot[`${uid}_checkedIn`]