Cloud Functions 和 Firestore:迭代 document.data

ktm*_*125 4 node.js firebase google-cloud-functions google-cloud-firestore

数据库结构如下所示:

User {id}
    Settings (Collection)
        device_uids(document)
            {device_uid_1}: Boolean
            (...)
            {device_uid_n}: Boolean
Run Code Online (Sandbox Code Playgroud)

我想获取该文档并访问该文档中的所有 device_uid。我这样试过,但是控制台日志forEach没有定义:

const settings_ref = admin.firestore().collection('User').doc(uid).collection('Settings').doc('device_uids');
    settings_ref.get()
    .then(snap =>{
        let uids = snap.data();


        uids.array.forEach(element => {
            let device = element.key;
            if(device != device_uid){
               //GO ON
            }
        });

    })
Run Code Online (Sandbox Code Playgroud)

如何单独访问这些值?

Dou*_*son 5

array的文档中没有调用字段,因此uids.array将始终未定义。如果你只想迭代文档的所有属性,就像迭代一个普通的旧 JavaScript 对象的所有属性一样:

const data = snap.data();
for (const key in data) {
    const value = data[key];
    // now key and value are the property name and value
}
Run Code Online (Sandbox Code Playgroud)