【问题标题】:Can firebase generate an unique ID as we wish?firebase 可以按照我们的意愿生成一个唯一的 ID 吗?
【发布时间】:2019-12-09 17:52:00
【问题描述】:
像 firebase 生成 uid。 firebase 可以按照我们的意愿生成一个唯一的 ID 吗?如果可能?如何按以下顺序为其编写代码?
例如 PRO00013、PRO00014、PRO00015....
我在这里问,因为我正在从事一个在线购物项目。当用户将产品添加到他们的库存时,它需要为每个产品分配一个 ID。那必须是人类可读的格式。如果不可能,请告诉我不,我可以接受这个答案。
【问题讨论】:
标签:
java
android
firebase
firebase-realtime-database
【解决方案1】:
你可以调用 .push() 来获取 randomUUID 然后 ref.child(randomUUID).setValue(object)
其中对象可以包含字段 ID,例如 PRO00013。
如果这不符合您的需求,您可以只放置 ref.child("PRO00013").setValue(object) 并且不在此对象中包含字段 id。
现在你想为下一个推送的对象获取 id PRO00014。 Firebase 不会发生这种情况。
但是您可以通过查询获得在此参考中添加的最后一个 ID
ref.orderByKey().limitToLast(1);
现在您已经从该节点获得了最后添加的对象,您可以简单地获取 PRO00013 的键。
1. 将其转换为字符串
2. 从此字符串中删除“PRO”
3. 将余数转换为整数
4. 给这个整数加 1
5. 创建新的字符串变量并为其赋值“PRO”+新整数
6. 现在将对象推入 ref.(新的字符串变量).setValue(object)。
现在我不知道您是否要在接受某种参数的云函数中实现此逻辑,但如果是这种情况 - 这应该可以正常工作。
我也想知道为什么 xD