firebase - 如何在地图字段中创建唯一 ID?
问题描述
数据结构
Countries (Collection)
|
--- 5nHsOxXPPenciyejILWP (Document)
|
--- Country Name (Map)
|
--- en (String) => Germany
--- ar (String) => ألمانيا
--- es (String) => Alemania
--- it (String) => Germania
--- de (String) => Deutschland
--- ru (String) => Германия
--- Cities (Map)
|
--- Berlin (String) => Berlin
--- Munich (String) => Munich
--- Frankfurt (String) => Frankfurt
Posts (Collection)
|
--- RhwFwkvSZ2WCh2K1O7xg (Document)
|
--- Title (String) => ...
--- Description (String) => ...
--- Country ID (String) => 5nHsOxXPPenciyejILWP
--- City ID (String) => Berlin
在Cities
现场,我希望键是唯一的 ID,b4ejx8nUIFrXE0EkVrbs
而不是使用城市名称。
我目前正在这样做,Berlin (String) => Berlin
但我希望它是这样b4ejx8nUIFrXE0EkVrbs (String) => Berlin
的,并且在Posts
收藏中它必须是这样的,City ID (String) => b4ejx8nUIFrXE0EkVrbs
而不是City ID (String) => Berlin
.
我可以通过在集合中创建一个子集合来解决这个问题,Countries
在这种情况下,每个城市都会有一个唯一的 ID,但是这种情况会花费我大量的读取而不是 1 次只读。
有没有办法创建一个看起来像这样的唯一 IDSKwFaGBYimiFBLUbZ9Oe, aXNTJsW6f6nTOsU7NBNO, EG1lo3Bbcnv9SJwLUGt5, q4QdEz3QPpvWu39gwpuK, etc...
而不是城市名称?
解决方案
您始终可以生成自己的 ID 并在添加数据时使用它们。有像UUID这样的包,或者你甚至可以像这样从 Firebase SDK 获取这些随机 ID:
const randomId = firebase.firestore().collection('users').doc().id
// use this randomId while adding data
推荐阅读
- c++ - 使用 libarchive 从内存中读取 zip 归档文件头
- twilio - 非 twilio 号码将呼叫转接到 twilio 号码
- python-3.x - 向量化函数 - 标量变量的索引无效
- wordpress - WP_Query + Nested Arguments + Like - 打印查询时添加垃圾字符
- r - 显示 x 轴中断的 y 值
- java - Arrays.binarySearch() 返回错误的插入点
- node.js - 有没有像firestore这样的数据库用于专用服务器?
- python - Google Code jam 中总是出现运行时错误
- google-chrome-extension - Chrome 扩展 OAuth2 SingIn 问题 - 此帐户的服务已被禁用
- python - 如何在 python 中使用 f-String 设置列大小?