首页 > 解决方案 > Firestore 规则不断变化

问题描述

我正在为我的项目使用 Firestore,并更新了我的规则:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
        allow read, write: if request.auth != null;
          
    }
  }
}

然而,只要 Firestore 发生变化,它就会变成这样:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if
          request.time < timestamp.date(2020, 11, 26);
    }
  }
}

我在几天内多次重置它,但它不断变回,我做错了什么?

编辑

这是我的 package.json,看起来没有对规则文件的任何引用。

{
  "name": "functions",
  "description": "Cloud Functions for Firebase",
  "scripts": {
    "lint": "eslint .",
    "serve": "firebase emulators:start --only functions",
    "shell": "firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "12"
  },
  "main": "index.js",
  "dependencies": {
    "firebase-admin": "^9.2.0",
    "firebase-functions": "^3.11.0",
    "bad-words": "^3.0.3"
  },
  "devDependencies": {
    "eslint": "^5.12.0",
    "eslint-plugin-promise": "^4.0.1",
    "firebase-functions-test": "^0.2.0"
  },
  "private": true
}

标签: firebasegoogle-cloud-firestorefirebase-security

解决方案


我的猜测是,当您部署函数时,您正在部署一个本地的、陈旧的规则文件。

检查您firebase.json对 Firestore 规则文件的引用,和/或运行firebase deploy --only functions.


推荐阅读