[英]How to create a custom id document in firestore(Firebase modular SDK (v9))
[英]Firestore using Firebase Client SDK V9 Modular with Admin Privileges
以前,我所有的 firestore 查詢都使用 v8 命名空間。
在我的服務器上使用Firebase Admin SDK所有交易都擁有完全權限。
我想將 v8 命名空間更新為 v9 模塊化語法:
// from this
db.collection("cities").where("capital", "==", true).get();
// to this
const q = query(collection(db, "cities"), where("capital", "==", true));
使用Firebase 客戶端 SDK v9 ,當我強制數據庫規則為true
時,它會起作用,如果不這樣做,我會收到錯誤permission-denied
。
import { initializeApp } from 'firebase/app';
import { getFirestore } from 'firebase/firestore';
const firebasev9 = initializeApp(configv9);
const db = getFirestore(firebasev9);
const q = query(collection(db, "cities"), where("capital", "==", true));
Firebase Admin SDK v10現在有類似於客戶端 sdk 的模塊化導出,所以我試了一下:
import { initializeApp } from 'firebase-admin/app';
import { getFirestore } from 'firebase-admin/firestore';
const firebaseAdminv9 = initializeApp(configAdminv9);
const db = getFirestore(firebaseAdminv9);
const q = query(collection(db, "cities"), where("capital", "==", true));
現在錯誤是Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore
。
似乎我們無法使用 firebase firebase-admin
中的getFirestore
實例。
客戶端 sdk 有沒有辦法擁有管理員權限?
不,這是不可能的。 客戶端 SDK 無法使用服務帳戶初始化,這是繞過安全規則的特權訪問所需的東西。 客戶端 SDK 僅將當前登錄的用戶從 Firebase Auth 傳遞給授權。
此外,根本不可能混合使用客戶端和管理 SDK。 盡管它們的 API 看起來很相似,但它們根本不兼容。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.