[英]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.