在 Firebase 中存储 ID 列表

Storing a list of ids in Firebase

我不知道如何用 firebase 解决这个问题: 我有用户,每个用户都有 posts,每个 post 都有一个由 firebase 生成的 id,如何将这些 id 存储在用户节点中?

我正在使用字符串,连接它们,在我的 js 应用程序中解析它们。基本上将它们视为 csv 文件。但我想这是一个非常丑陋的解决方案

存储这种数据的方法是什么?

编辑:

用户ID:

当用户有一个新的 post 时,我使用一个事务在字符串的末尾附加一个新的 id。当我需要删除一个 id 时,我再次使用事务并使用以下代码删除元素:

removeElem(list, value) {
var separator = ",";
var values = list.split(separator);
for (var i = 0; i < values.length; i++) {
    if (values[i] == value) {
        values.splice(i, 1);
        return values.join(separator);
    }
}
return list;
},

虽然交易会为此工作,但它会严重损害可扩展性,并且在用户暂时失去连接时根本无法工作。为了更好的解决方案,摆脱数组逻辑并使用 Firebase 的 push() 方法。来自 Firebase documentation on saving lists of data:

Push vs Transaction

When working with lists of data push() ensures a unique and chronological ID. You may be tempted to use transactions instead to generate your own IDs, but push is a far better choice. Transactions are slower and more complex. They require one or more round trips to the server. A push ID can be generated on the client will work while offline and is optimized for performance.

虽然可能需要一些时间来适应非顺序键,但在较长的 运行 中会更好。