如何使用自定义键将数据保存在数据库中?

How to use custom keys to save data in database?

如果您能在以下方面帮助我,我将不胜感激:

我有一个 Ionic 2 项目,需要知道如何在 Firebase 数据库中使用自定义键保存对象。

实际上,在 Firebase 中我有:

+ blabla
+ blabla
- users : 
    - UIDXXX : {
        + last_audio: {}
        + sessions : []
    }

嗯,而不是字符串 UIDXXX,我需要将用户的 uid 保存为键,例如:

- users : 
          - 232ssadas223ss2 : {
                  + last_audio: {}
                  + sessions : []
            }
          - das112dasd21dsd : {
                  + last_audio: {}
                  + sessions : []
            }

           .
           .
           .

这就是我实际检索数据的方式:

this.auth.subscribe((user) => {
    if (user) {
        let firebaseObservable = this.angularFire.database.object(`/users`);
        firebaseObservable.update({
            useruid : {
                last_audio: this.audio,
                sessions: [
                    "Hoy",
                    "Ayer"
                ]
             }
        });
    }
});

但是,显然我将单词 "userid" 而不是 user.uid 保存为关键字,并且在 Firebase 中我得到:

users :
- useruid : {
    + last_audio: {}
    + sessions : []
}

非常感谢您。

您可以使用so-called括号将数据设置到对象中:

    let firebaseObservable = this.angularFire.database.object(`/users`);
    var updates = {};
    updates[userid] = {
            last_audio: this.audio,
            sessions: {
                "Hoy": true,
                "Ayer": true
            }
         };
    firebaseObservable.update(updates);

我还将您的 sessions 数组更改为一个集合,因为它可能更好地反映您存储的内容。有关数组与集合的更多信息,请在此处查看我的回答: