【问题标题】:Create an incremental method for users ID in firebase在 Firebase 中为用户 ID 创建增量方法
【发布时间】:2018-11-04 20:06:00
【问题描述】:

我试图创建一个数据库结构,每个在应用程序中注册的用户都会获得一个存储在 firebase 中的增量 ID,但我不太清楚该怎么做。

Example

【问题讨论】:

  • 为什么必须是数字? Firebase 可以为您生成 id,但它们不是数字。
  • 为什么不使用来自 auth 进程的 uid?
  • @AlexMamo 我知道这是一个更好的主意,但我要求这样做。
  • @peakystewie 到目前为止你尝试过什么?
  • @AlexMamo 我尝试创建一个计数器变量并在每次用户注册时递增它,但问题是当应用程序重新启动时,计数器再次从 0 开始。我认为逻辑是我应该创建一个添加到 firebase 中的最新子项的变量并增加它,但我没有找到一种方法来引用最新添加的子项。

标签: android firebase flutter


【解决方案1】:

ID 是增量的对您来说很重要吗?在分布式系统中,总是存在 ID 冲突的风险。

使用全局唯一 ID (UUID) 来识别用户是一种很好的做法。这些 ID 永远不会发生冲突。

Dart 实现:https://pub.dartlang.org/packages/uuid

用法:

String uuid = Uuid().v4();

【讨论】:

  • 如果是关于 guid,firebase 会为你生成这些。你不应该自己做
  • 我被要求逐步进行,我知道这不是一个好主意。但是增量的事实意味着不能发生冲突,因为对于每个添加的用户,ID 都会变为 +1。
【解决方案2】:

你能不能不做这样的事情(伪代码)?

var allUsers = await Firebase.instance.collection('users').getDocuments();
var newID = allUsers.documents.length + 1;
// then use the generated ID to save for a new user

【讨论】:

  • 我认为这是用于 Firestore,而不是实时数据库。
  • @peakystewie 没关系,同样的逻辑也适用。
猜你喜欢
  • 2020-04-23
  • 2022-08-03
  • 2010-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-04
  • 2021-08-04
  • 1970-01-01
相关资源
最近更新 更多