云功能从实时数据库路径获取列表

时间:2018-09-20 13:13:17

标签: node.js firebase firebase-realtime-database firebase-admin

我正在尝试从路径中检索对象列表。文档结构如下所示:

-- device
    |
    -- {id}
        |
        ...
        -- user:
            |
            -- {pushId}: <user id x>
            |
            ...
            |
            -- {pushId}: <user id z>
    |
    ...
|

下面的代码是我试图获取所有用户ID的方式,但是我没有获取列表,仅获取快照。

const getUserIdsPromise = admin.database().ref(dbVersionRef + `/device/${id}/user/{pushId}`).once('value');
return Promise.all([anotherPromise, getUserIdsPromise]).then((results) => {
    const userIds = results[1].child();

    // No id is logged
    userIds.forEach((id) => {
        debug.log('userId: ' + id);
});

1 个答案:

答案 0 :(得分:1)

您正在阅读/device/${id}/user/{pushId},这意味着您正在阅读单个用户。

如果要获得单个设备的所有用户,则应阅读/device/${id}/user

admin.database().ref(dbVersionRef + `/device/${id}/user/`)
     .once('value')
     .then((results) => {
       results.forEach((snapshot) => {
         debug.log('userId: ' + snapshot.val());
       })
     });

如果要获取设备,请阅读/device