【问题标题】:Firestore security rules and Api KeyFirestore 安全规则和 Api Key
【发布时间】:2019-08-15 23:39:21
【问题描述】:

我在 nuxt 应用程序中使用 api 密钥调用 firestore db 时遇到问题。

如果我使用默认安全规则,那就没问题了。 但是当我使用谷歌推荐的规则时:

allow read, write: if request.auth.uid != null; 

我收到了这个错误。

Error getting documents:  FirebaseError: "Missing or insufficient permissions."

 FirestoreError index.cjs.js:352 fromRpcStatus index.cjs.js:5844 fromWatchChange index.cjs.js:6341 onMessage index.cjs.js:14912 startStream index.cjs.js:14841 getCloseGuardedDispatcher index.cjs.js:14881 newTail index.cjs.js:7636 

我的 Firestore 配置文件、信息和 API 密钥在我的文件配置中是正确的。我正在使用项目中的 API 密钥 => 全局设置 => apikey:

import firebase from 'firebase'

var config = {
    apiKey: "",
    authDomain: "",
    databaseURL: "",
    projectId: "",
    storageBucket: "",
    messagingSenderId: ""
};

if (!firebase.apps.length) {
    firebase.initializeApp(config)
}
export const db = firebase.firestore();
export default firebase

【问题讨论】:

    标签: google-cloud-firestore firebase-security


    【解决方案1】:

    这条规则:

    allow read, write: if request.auth.uid != null; 
    

    表示对匹配文档的所有访问只能来自经过身份验证的用户。身份验证必须通过集成到应用程序中的 Firebase 身份验证来完成。该规则将拒绝用户当前未登录或未使用 Firebase 身份验证的任何访问。

    【讨论】:

    • 感谢您的帮助。我不知道为什么我认为 api 可以与这条规则一起使用.. 但我没有看到任何信息来保护 api 密钥调用仅在 doc.. firebase.google.com/docs/reference/rules/… 也许我不搜索好地点。
    • 安全规则与您的 API 密钥无关。 API 密钥不是“安全”信息。它是公开的,而且它一直是这样运作的。已经有很多关于这方面的现有信息。
    猜你喜欢
    • 2021-04-12
    • 2021-04-09
    • 2018-10-19
    • 2019-07-05
    • 2021-01-16
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多