Firebase 错误:读取规则文件firestore.rules时出错
我试图在使用Firebase作为主机的同时部署我的网站,并删除了Firebase 错误:读取规则文件firestore.rules时出错,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我试图在使用Firebase作为主机的同时部署我的网站,并删除了firestore.rules文件,因为我认为我不需要使用Cloud firestore数据库(我现在只是部署一个占位符) 我已遵循中提到的所有步骤 当我运行firebase deploy时,我得到一个错误: 错误:读取规则文件firestore.rules时出错 我不知道如何克服这一点。有人能帮我解决这个问题吗?谢谢大家! 从firebase.json文件中删除:“规则”:“firestore.rules”从firebase.js
firestore.rules
文件,因为我认为我不需要使用Cloud firestore数据库(我现在只是部署一个占位符)
我已遵循中提到的所有步骤
当我运行firebase deploy
时,我得到一个错误:
错误:读取规则文件firestore.rules时出错
我不知道如何克服这一点。有人能帮我解决这个问题吗?谢谢大家! 从firebase.json文件中删除:“规则”:“firestore.rules”从firebase.json文件中删除:“规则”:“firestore.rules”如何检索现有的云firestore规则
{
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"storage": {
"rules": "storage.rules"
},
"hosting": {
"public": "./public",
"headers": [
{
"source": "**/*.@(js|html)",
"headers": [
{
"key": "Cache-Control",
"value": "max-age=0"
}
]
}
]
}
}
转到您的Firebase控制台
,从侧边栏中的Build
类别中单击Cloud Firestore
。
您可以在屏幕顶部(Cloud Firestore标题下方)看到一个规则选项卡。打开规则
选项卡。现在,您可以看到当前处于活动状态的规则以及迄今为止部署的所有其他规则(通过CLI或Firebase控制台)
您可以从此处复制规则并将其粘贴到项目文件夹中名为firestore.rules
的文件中
如何修复错误“错误:读取规则文件firestore.rules时出错”
如果您在firebase.json
文件中为firestore.rules
设置了错误路径(例如,将文件移动到子文件夹),或者您根本没有firestore.rules
文件,但在firebase.json
中引用它,则很可能会出现此错误
firebase.json中设置了错误的路径
从firebase项目文件夹中打开firebase.json
文件。您可以在此文件中找到一些路径和文件名
查找firestore
类别。它应该类似于这样:
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
您可能需要更新路径或文件名以匹配firestore.rules
所在的位置
如果找不到firestore
的任何路径,可以将它们添加到firebase.json
文件中。现在看起来可能是这样的(注意:我移动了我的firestore文件并更改了firestore.rules
和firestore.index.json
)的路径:
如果不想从项目文件夹部署任何Firestore规则
如果您想在Firebase控制台上部署Firestore规则
,可以从项目文件夹中删除Firestore.rules
和Firestore.index.json
文件,并从Firebase.json
中删除Firestore
部分。尽管我建议将它们保存在项目文件夹中,以便您可以在版本控制系统中跟踪它们
请记住,您也可以删除firebase.json
文件中的引用,即rules
未通过CLI部署,并保留firestore.rules
和firestore.index.json
文件
如果您不想通过CLI部署Firestore规则,请删除此项:
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
如何检索现有的云Firestore规则
转到您的Firebase控制台
,从侧边栏中的Build
类别中单击Cloud Firestore
。
您可以在屏幕顶部(Cloud Firestore标题下方)看到一个规则选项卡。打开规则
选项卡。现在,您可以看到当前处于活动状态的规则以及迄今为止部署的所有其他规则(通过CLI或Firebase控制台)
您可以从此处复制规则并将其粘贴到项目文件夹中名为firestore.rules
的文件中
如何修复错误“错误:读取规则文件firestore.rules时出错”
如果您在firebase.json
文件中为firestore.rules
设置了错误路径(例如,将文件移动到子文件夹),或者您根本没有firestore.rules
文件,但在firebase.json
中引用它,则很可能会出现此错误
firebase.json中设置了错误的路径
从firebase项目文件夹中打开firebase.json
文件。您可以在此文件中找到一些路径和文件名
查找firestore
类别。它应该类似于这样:
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
您可能需要更新路径或文件名以匹配firestore.rules
所在的位置
如果找不到firestore
的任何路径,可以将它们添加到firebase.json
文件中。现在看起来可能是这样的(注意:我移动了我的firestore文件并更改了firestore.rules
和firestore.index.json
)的路径:
如果不想从项目文件夹部署任何Firestore规则
如果您想在Firebase控制台上部署Firestore规则
,可以从项目文件夹中删除Firestore.rules
和Firestore.index.json
文件,并从Firebase.json
中删除Firestore
部分。尽管我建议将它们保存在项目文件夹中,以便您可以在版本控制系统中跟踪它们
请记住,您也可以删除firebase.json
文件中的引用,即rules
未通过CLI部署,并保留firestore.rules
和firestore.index.json
文件
如果您不想通过CLI部署Firestore规则,请删除此项:
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
如果您正在学习本教程
然后,这里的问题是,当您尝试运行此命令部署firebase deploy时,除了函数之外,此脚本将尝试在根目录中查找具有firestore.rules
和storage.rules
的文件,您将得到以下错误:读取规则文件存储.rules
t
// Returns true if the uploaded file is an image and its size is below the given number of MB.
function isImageBelowMaxSize(maxSizeMB) {
return request.resource.size < maxSizeMB * 1024 * 1024
&& request.resource.contentType.matches('image/.*');
}
service firebase.storage {
match /b/{bucket}/o {
match /{userId}/{messageId}/{fileName} {
allow write: if request.auth != null && request.auth.uid == userId && isImageBelowMaxSize(5);
allow read;
}
}
}