gpt4 book ai didi

firebase - Firestore 自动生成的 ID 会包含 _ 下划线吗?

转载 作者:行者123 更新时间:2023-12-03 19:34:55 24 4
gpt4 key购买 nike

我有一个简单的逻辑,它结合了 2 个 firestore id 和 _,即 id1_id2。在检索复合键时,我使用 _ 将其拆分。因此,Firestore 的自动生成的 id 是否有可能包含 _ 下划线,从而破坏了与 _ 下划线拆分的简单逻辑?

我通过 AngularFire2 将 Firestore 与 Angular 一起使用.

一个简化的片段。

constructor(private afs: AngularFirestore) {
const id1 = this.afs.createId();
const id2 = this.afs.createId();
const compositeKey = id1 + '_' + id2;
}

我需要compositeKey 因为我想实现an example in here由 Google 开发人员专家提供:示例 relationships/{followerID_followedID} .还有其他可能的方法来实现相同的结果。但是,在学习使用复合键的教程中,我想了解使用 _ 下划线拆分 2 个 id 是否没有冲突?

enter image description here

CompositeKey 不用于 Firestore 中的直接查询。它用于 url 路由。我有一个路由调用localhost:4200/relationship/follwerId_followId
我会阅读 relationship/:id在 Angular 中,接下来用 _ 下划线分割,最后查询 .collection('user_profile').doc(followerId).collection('user_profile').doc(followedId)在一个页面中显示两个用户的个人资料。

最佳答案

唯一认为你能做到的是为你的数据找到一种格式,让你知道 100% 确定该模式不会被 Firebase 随机复制。

Firestore 键使用修改过的 Base64 字母表,就像它们在 Firebase 实时数据库中所做的一样:

-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz

它们是通过时间戳和随机值实现的。你可以找到算法 here

Firebase 有一小组不允许使用的字符,它们列在 this answer 中:

Character Set Limitations

Note that URLs used to construct Firebase references may contain any unicode characters except:

  • . (period)
  • $ (dollar sign)
  • [ (left square bracket)
  • ] (right square bracket)
  • # (hash or pound sign)
  • / (forward slash)

关于firebase - Firestore 自动生成的 ID 会包含 _ 下划线吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50677705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com