如何为阿拉伯语等非ASCII名称的Firestore集合编写安全规则?
Firestore安全规则中使用阿拉伯语集合/文档名的解决方法
正确写法示例
Firestore安全规则完全支持Unicode字符(包括阿拉伯语),问题通常出在编码或写法细节上,以下是可行的实现方式:
- 直接使用阿拉伯语名称(确保编辑器编码为UTF-8):
match /المنشورات/{postId} { allow read: if request.auth != null; allow write: if request.auth.uid == resource.data.authorUid; } - 若直接写入出现识别问题,改用Unicode转义序列替换阿拉伯语字符(每个字符转成
\uXXXX格式,可通过在线Unicode转换工具生成):match /\u0627\u0644\u0645\u0646\u0634\u0648\u0631\u0627\u062A/{postId} { allow read: if request.auth != null; allow write: if request.auth.uid == resource.data.authorUid; }
关键排查点
- 确认规则文件的保存编码为UTF-8:很多编辑器默认用GBK等编码,会导致阿拉伯语字符乱码,Firebase无法识别。
- 复制粘贴名称时检查是否混入不可见字符:比如额外空格、换行符,建议手动输入或清理后再粘贴。
- 更新Firebase CLI到最新版本:旧版本可能存在Unicode字符支持缺陷,执行命令:
npm install -g firebase-tools - 用控制台规则模拟器验证:直接输入阿拉伯语集合路径测试规则是否匹配,快速定位问题。
内容的提问来源于stack exchange,提问作者Mohammed Salim Al-Othman
相关产品推荐
相关产品推荐

