You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Document ID检查Firestore的Users集合中是否存在指定文档?

检查Firestore Users集合中指定Document ID的文档是否存在

要确认指定Document ID的用户文档是否存在,最直接高效的方式是直接通过ID获取文档快照,而非使用查询条件过滤——这种方式能精准定位目标文档,避免不必要的集合遍历,性能更优。

以下是各平台的实现示例:

Web(JavaScript)

// 假设已完成Firebase及Firestore的初始化
const db = firebase.firestore();

async function checkUserExists(docId) {
  const userDocRef = db.collection('Users').doc(docId);
  const docSnapshot = await userDocRef.get();
  // 返回布尔值表示文档是否存在
  return docSnapshot.exists;
}

// 使用示例
checkUserExists('目标文档ID')
  .then(exists => {
    console.log(exists ? '用户文档存在' : '用户文档不存在');
  })
  .catch(err => console.error('检查失败:', err));

Android(Kotlin)

import com.google.firebase.firestore.FirebaseFirestore
import android.util.Log

// 初始化Firestore实例
val db = FirebaseFirestore.getInstance()

fun checkUserExists(docId: String) {
    db.collection("Users").document(docId)
        .get()
        .addOnSuccessListener { document ->
            val exists = document.exists()
            Log.d("FirestoreCheck", if (exists) "用户文档存在" else "用户文档不存在")
        }
        .addOnFailureListener { exception ->
            Log.w("FirestoreCheck", "检查过程出错", exception)
        }
}

iOS(Swift)

import FirebaseFirestore

// 初始化Firestore实例
let db = Firestore.firestore()

func checkUserExists(docId: String) {
    db.collection("Users").document(docId).getDocument { document, error in
        if let error = error {
            print("检查出错: \(error.localizedDescription)")
            return
        }
        
        guard let doc = document else {
            print("未获取到文档快照")
            return
        }
        
        print(doc.exists ? "用户文档存在" : "用户文档不存在")
    }
}

注意点

  • 确保你的Firebase权限规则允许读取Users集合的文档,否则会出现权限错误。
  • 直接通过doc()方法定位文档的开销远低于使用whereField("__name__", isEqualTo: docId)的查询,优先使用前者。

内容的提问来源于stack exchange,提问作者MRane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 23:40:28