如何从Firestore数据库文档的map字段子字段中获取指定存储值
Firestore Map子字段最简取值方案
你需要获取UID map字段下的deleted布尔值,直接使用Firestore原生支持的点分隔语法即可实现,无需手动嵌套解析整个map结构。
各端实现示例
- Web端(JavaScript/TypeScript)
import { doc, getDoc } from "firebase/firestore"; import { db } from "./你的firebase初始化文件路径"; const docRef = doc(db, "你的集合名", "你的文档ID"); const docSnap = await getDoc(docRef); if (docSnap.exists()) { // 直接用点语法取值,拿到的就是布尔类型的deleted值 const isDeleted = docSnap.get("UID.deleted"); console.log(isDeleted); // 输出true/false }
- Python服务端
import firebase_admin from firebase_admin import firestore app = firebase_admin.initialize_app() db = firestore.client() doc_ref = db.collection("你的集合名").document("你的文档ID") doc = doc_ref.get() if doc.exists: is_deleted = doc.get("UID.deleted") print(is_deleted)
- Android端(Kotlin)
val db = FirebaseFirestore.getInstance() val docRef = db.collection("你的集合名").document("你的文档ID") docRef.get() .addOnSuccessListener { document -> if (document != null) { val isDeleted = document.getBoolean("UID.deleted") Log.d("取值结果", isDeleted.toString()) } }
额外拓展
如果你需要查询集合中所有UID.deleted为true的文档,同样可以直接用点语法构造查询条件:
// 以JS为例,其他端语法同理 const q = query(collection(db, "你的集合名"), where("UID.deleted", "==", true));
内容的提问来源于stack exchange,提问作者HeroreH29
相关产品推荐
相关产品推荐

