Firebase 使用电话号码作为用户文档ID有什么风险?如何根据用户的电话号码有效地查询用户
我正在开发一个移动应用程序,用户可以用手机登录,如果有其他人的电话号码,可以邀请他们加入群组。我在Firestore中设置了以下内容 我计划写一些规则,这样用户只能编辑自己的文档。他们可以通过邀请相互邀请,这样用户就可以自己加入一个组。他们只能通过电话号码查找手机中的用户 但我想知道我是不是在玩火?使用电话号码作为文档id有什么风险?我是新来的,我想保持用户的数据尽可能安全。但我也不想对文档进行太多的查找/查询。关于如何改进我的设计有什么建议吗 使用电话号码作为用户文档ID有什么风险 只要用户不改变他们的电话号码,这没有什么错。但如果他们会改变,你可能会有困难的时候。我这么说是因为没有办法“重命名”文档id。您可以复制同一文档并更改文档id,但这意味着新的文档读取和写入操作Firebase 使用电话号码作为用户文档ID有什么风险?如何根据用户的电话号码有效地查询用户,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我正在开发一个移动应用程序,用户可以用手机登录,如果有其他人的电话号码,可以邀请他们加入群组。我在Firestore中设置了以下内容 我计划写一些规则,这样用户只能编辑自己的文档。他们可以通过邀请相互邀请,这样用户就可以自己加入一个组。他们只能通过电话号码查找手机中的用户 但我想知道我是不是在玩火?使用电话号码作为文档id有什么风险?我是新来的,我想保持用户的数据尽可能安全。但我也不想对文档进行太多的查找/查询。关于如何改进我的设计有什么建议吗 使用电话号码作为用户文档ID有什么风险 只要
相反,您可以使用的是作为文档id,它的
uid
。无论电话号码是什么,此uid
都将始终相同
我计划写一些规则,这样用户只能编辑自己的文档
即使您使用的是uid
,也可以实现这一点
编辑: o用作文档id“我想根据用户集合检查用户电话簿,以查找具有相应电话号码的用户 您最初可能认为应该使用:
db.collection("users").document(phoneNumber).get();
但您可以使用查询实现完全相同的结果:
db.collection("users").whereEqualTo("phoneNumber", phoneNumber).get();
是的,这很重要。请注意,即使查询不生成任何文档,读取一个文档也会有成本。“您可以改为使用文档id“我想对照用户集合检查用户电话簿,以查找具有相应电话号码的用户。这样做时,这将是一个代价高昂的查询吗?该查询是否算作文档读取?我所说的查询是指where()函数。谢谢。这个答案让我明白了一些!投了一票。很高兴听到;)