FirebaseError: Missing or insufficient permissions after deleting Google Service Accounts
FirebaseError: Missing or insufficient permissions after deleting Google Service Accounts
用例
我正在使用 Firebase JS SDK 从浏览器访问 Cloud Firestore,这样我就可以将 UI 日志和错误推送到 Firestore。
问题
一切正常,直到我不小心删除了我的 Google 云平台 API 和服务中的大部分服务帐户 →凭据.
下面是我们用于 Firebase Web 应用程序的示例配置:
<script src="https://www.gstatic.com/firebasejs/7.13.1/firebase-app.js"></script>
<script>
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "AIzaSyCztfcT6k6yXXXXXXXXXXXXXXXXXX",
authDomain: "<some-domain>.firebaseapp.com",
databaseURL: "https://<some-domain>.firebaseio.com",
projectId: "<some-domain>",
storageBucket: "<some-domain>.appspot.com",
messagingSenderId: "877458876543",
appId: "1:877458876543:web:9a9287dee234cd655ab7f2"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
我什至尝试阅读 Firebase Service Accounts Overview,但无法决定将哪个服务帐户用于 Firestore。然后,我尝试根据我的项目 ID 添加不同的服务帐户并授予他们对我的项目的所有者权限,但它没有用。
浏览器控制台出现完整错误:
Uncaught (in promise) FirebaseError: Missing or insufficient permissions.
at new Hr (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:48219)
at https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:378673
at wr.<anonymous> (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:377569)
at Wt (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:15221)
at wr.S.dispatchEvent (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:16063)
at Er.ua (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:45322)
at nr.S.Fa (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:43229)
at Ge (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:21453)
at qe (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:20854)
at Me.S.Ja (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:23264)
实际上,我想清理我的服务帐户,因为有很多是我自己创建的。请指导告知要使用哪个服务帐户以及授予什么合适的权限。
Firestore 安全规则依赖于名为 service-PROJECT_NUMBER@firebase-rules.iam.gserviceaccount.com
且角色为
roles/firebaserules.system
。您可以使用 gcloud
恢复此帐户:
gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:service-PROJECT_NUMBER@firebase-rules.iam.gserviceaccount.com --role=roles/firebaserules.system
要获取项目编号,请参阅 Identifying projects。
用例
我正在使用 Firebase JS SDK 从浏览器访问 Cloud Firestore,这样我就可以将 UI 日志和错误推送到 Firestore。
问题
一切正常,直到我不小心删除了我的 Google 云平台 API 和服务中的大部分服务帐户 →凭据.
下面是我们用于 Firebase Web 应用程序的示例配置:
<script src="https://www.gstatic.com/firebasejs/7.13.1/firebase-app.js"></script>
<script>
// Your web app's Firebase configuration
var firebaseConfig = {
apiKey: "AIzaSyCztfcT6k6yXXXXXXXXXXXXXXXXXX",
authDomain: "<some-domain>.firebaseapp.com",
databaseURL: "https://<some-domain>.firebaseio.com",
projectId: "<some-domain>",
storageBucket: "<some-domain>.appspot.com",
messagingSenderId: "877458876543",
appId: "1:877458876543:web:9a9287dee234cd655ab7f2"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
我什至尝试阅读 Firebase Service Accounts Overview,但无法决定将哪个服务帐户用于 Firestore。然后,我尝试根据我的项目 ID 添加不同的服务帐户并授予他们对我的项目的所有者权限,但它没有用。
浏览器控制台出现完整错误:
Uncaught (in promise) FirebaseError: Missing or insufficient permissions.
at new Hr (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:48219)
at https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:378673
at wr.<anonymous> (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:377569)
at Wt (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:15221)
at wr.S.dispatchEvent (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:16063)
at Er.ua (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:45322)
at nr.S.Fa (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:43229)
at Ge (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:21453)
at qe (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:20854)
at Me.S.Ja (https://www.gstatic.com/firebasejs/7.8.2/firebase-firestore.js:1:23264)
实际上,我想清理我的服务帐户,因为有很多是我自己创建的。请指导告知要使用哪个服务帐户以及授予什么合适的权限。
Firestore 安全规则依赖于名为 service-PROJECT_NUMBER@firebase-rules.iam.gserviceaccount.com
且角色为
roles/firebaserules.system
。您可以使用 gcloud
恢复此帐户:
gcloud projects add-iam-policy-binding PROJECT_ID --member=serviceAccount:service-PROJECT_NUMBER@firebase-rules.iam.gserviceaccount.com --role=roles/firebaserules.system
要获取项目编号,请参阅 Identifying projects。