【问题标题】:Get a custom key generated when pushing to firebase获取推送到 Firebase 时生成的自定义密钥
【发布时间】:2021-07-14 07:02:47
【问题描述】:

我正在将一些数据保存到 firebase,我正在使用 golang admin sdk。我的问题是,当我将对象推送到 firebase 时,它​​会生成一个对某些用例有用的 ID,但我不需要像 1、3、4 这样的自定义整数键...... 推送后对象可能是这样的。

我知道我可以通过获取所有数据然后计算它们并创建下一个 ID 并将我的对象添加到该 ID 下来设置它,但我不想要这个。有没有办法在firebase中自动实现这一点。

【问题讨论】:

  • 要么接受从推送中获得的随机字符串,要么自己指定键值。没有自动增量 ID。
  • 谢谢@Stevenson 我是这么认为的。如果 firebase 能提供这样的功能,那就太棒了。
  • 您可以将最后一个整数存储在数据库中的任何其他节点中,并在添加新数据时获取它。之后,只需增加另一个节点中的值。
  • 自动递增整数(或其他)键在 NoSQL 数据库中通常不是一个好主意。你这样做的目的是什么?

标签: firebase firebase-realtime-database firebase-admin


【解决方案1】:

您在技术上可以做到这一点,但它需要一些额外的设置。 您必须将当前索引保持在“全局”位置并增加它

如果 2 个或更多用户之间存在竞争条件,则存在写入失败的风险。为了尽量减少这种情况,您可以考虑使用事务和规则来控制数据流。

此外,如果您不希望客户端处理全局计数器的事务和更新,您可以使用云功能来处理。

来源:

Cloud Functions

Server side increment

Rules for existing vs new data

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2021-12-19
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 2012-10-07
    相关资源
    最近更新 更多