Firebase Firestore不允许我指定数字文档id?它是如何工作的?

Firebase Firestore不允许我指定数字文档id?它是如何工作的?,firebase,google-cloud-firestore,google-cloud-datastore,Firebase,Google Cloud Firestore,Google Cloud Datastore,我被告知(至少在关系数据库上)索引类型在比较两个值时很重要,这是一个非常基本的操作,每次搜索都要执行多次 因此,我被建议将索引存储为数字(长32位),而不是字符串(8位/字符),考虑到以下几点 key:"1234567890" => 80bits ASCII-string key: 1234567890 => 32bits uLong generated:"hgYTTd4p63pdTtOR1wFG" => 160bits 就我看来,firestore不允许为文档指定键类

我被告知(至少在关系数据库上)索引类型在比较两个值时很重要,这是一个非常基本的操作,每次搜索都要执行多次

因此,我被建议将索引存储为数字(长32位),而不是字符串(8位/字符),考虑到以下几点

key:"1234567890" => 80bits ASCII-string
key: 1234567890   => 32bits uLong
generated:"hgYTTd4p63pdTtOR1wFG" => 160bits 
就我看来,firestore不允许为文档指定键类型(抛出“路径必须是字符串”错误)以及大小类型,但是默认的id生成器是一个使用大写和小写ASCII的优化字符串

我的问题:
索引类型现在变得一文不值了吗?它是如何工作的?我是否可以安全地将任何基于数字的密钥转换为字符串而不减慢任何速度,或者我宁愿使用默认id生成器来获得最短的密钥?

Firestore中的所有文档id都是字符串,不能更改。文档ID的要求在中列出(最多1500字节)

在Firebase的运行规模上,使用整数甚至不太可能真正提高性能。当一个集合中有数以十亿计的文档时,Firstore比优化文档ID中的几个字节有更大的问题要处理。实际上,更重要的是确保它有一个ID的工作空间,实际上可以保证存储随机生成的ID,而不会与可能存在的其他文档发生冲突