【问题标题】:Get an unknown key name from Firebase function database trigger从 Firebase 函数数据库触发器获取未知键名
【发布时间】:2017-07-26 07:18:15
【问题描述】:

我是 Firebase 函数的新手,并试图了解如何从数据库 .onCreate 触发器中获取某个键。这是一个例子:

exports.createUserRoundData = 
functions.database.ref('/data/players/{user_key}/').onCreate(event => {

    var eventData = event.data.val();

    var userKey = event.params.user_key;

    var itemKey = eventData.items; // This returns an object

});

结构是:

players > user_key > items > item_key > data

在上述情况下,如何检索 item_key?

【问题讨论】:

    标签: javascript firebase firebase-realtime-database google-cloud-functions


    【解决方案1】:

    是的,你可以,

    你需要这样的东西:

    exports.createUserRoundData = functions.database.ref('/data/players/{user_key}/').onCreate(event => {
        var userKey = event.params.user_key; // Get user key parameter
        var eventSnapshot = event.data; // Get player data
        var itemsSnapshot = eventSnapshot.child('items'); // Get items data
    
        itemsSnapshot.forEach(function(itemSnapshot) { // For each item
            var itemKey = itemSnapshot.key; // Get item key
            var itemData = itemSnapshot.val(); // Get item data
        });
    });
    

    Here the Firebase Cloud Functions documentation.

    【讨论】:

    • 谢谢,这让我发疯了。后续问题 - 如果项目节点中只有一个子项目,这仍然是检索它的最佳方式吗?
    • 是的,我认为,在这个函数中,我们只使用可用数据而没有任何其他数据库请求。即使只有一个孩子,forEach 循环仍然是最好的方法。
    猜你喜欢
    • 2018-02-21
    • 2018-08-06
    • 1970-01-01
    • 2017-10-02
    • 2019-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    相关资源
    最近更新 更多