前提・実現したいこと
Reactとfirebaseで簡単なチャットボットアプリを作成しています。
こちらの動画を参考に、Cloud FunctionsでAPIを作って、firebase上のデータベースからチャットボットのデータを置いて、チャットボットのコード内にデータを置かないと言う作業を行いました。
しかし、npm start
でブラウザ上で確認すると、
Uncaught (in promise) FirebaseError: Missing or insufficient permissions.
というエラーが出てしまいました。
こちらの解決方法がわからないため、お力を貸していただきたいです。
発生している問題・エラーメッセージ
Uncaught (in promise) FirebaseError: Missing or insufficient permissions.
該当のソースコード
console上でエラーが出ている箇所を確認すると、prebuilt-011dd513-2a18b0ac.jsの418行目だそうです。
JavaScript
1function e(e, n) { 2 var r = this; 3 return (r = t.call(this, n) || this).code = e, r.message = n, r.name = "FirebaseError", // ←こちらが418行目です。 4 // HACK: We write a toString property directly because Error is not a real 5 // class and so inheritance does not work correctly. We could alternatively 6 // do the same "back-door inheritance" trick that FirebaseError does. 7 r.toString = function() { 8 return r.name + ": [code=" + r.code + "]: " + r.message; 9 }, r; 10 } 11 return b(e, t), e; 12}(Error), M = /** @class */ function() { 13 /** @hideconstructor */ 14 function t(t) { 15 this.l = t; 16 }
また、僕なりに調べた結果、どうやらfirebase.rulusとfunctionディレクトリ内のpackage.jsonが関係しているっぽいのでそちらのコードも載せておきます。
- firebase.rulus
rules_version = '2'; // Allow read/write access on all documents to any user signed in to the application service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if request.auth.uid != null; } } }
- function/package.json
{ "name": "functions", "scripts": { "lint": "eslint \"src/**/*\"", "build": "tsc", "serve": "npm run build && firebase emulators:start --only functions", "shell": "npm run build && firebase functions:shell", "start": "npm run shell", "deploy": "firebase deploy --only functions", "logs": "firebase functions:log" }, "engines": { "node": "10" }, "main": "lib/index.js", "dependencies": { "firebase-admin": "^9.2.0", "firebase-functions": "^3.11.0" }, "devDependencies": { "@typescript-eslint/eslint-plugin": "^3.9.1", "@typescript-eslint/parser": "^3.8.0", "eslint": "^7.6.0", "eslint-plugin-import": "^2.22.0", "typescript": "^3.8.0", "firebase-functions-test": "^0.2.0" }, "private": true }
試したこと・調べた記事
- function/package.json内のnodeのバージョンを12→10に変更して、ターミナルで
npm i
を実行。そして、firebase deploy --only functions
を実行する。 - firebaseのチュートリアルで、Error: Missing or insufficient permissions.と言われた時の解決法メモ
- データを安全にクエリする
補足情報(FW/ツールのバージョンなど)
React create-react-app
あなたの回答
tips
プレビュー