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

如何用Plugin.CloudFirestore获取Firestore数组中的引用值?

问题修复方案

1. 先解决最直接的空引用问题

你代码里的referencedDocs被初始化为null,调用Add方法时必然触发空引用异常,导致代码直接中断,根本没法收集到任何文档快照。

把初始化代码改成这样:

List<IDocumentSnapshot> referencedDocs = new List<IDocumentSnapshot>();

2. 关于IDocumentReference类型的正确性

从你调试的信息来看,myRefs里的元素已经包含正确的Path、Id等属性,说明List<IDocumentReference>这个类型是没问题的,Plugin.CloudFirestore已经正确把Firebase里的引用数组反序列化了。

如果修复空引用后还是拿不到文档,可以试试手动用路径重建引用,验证是否能正常获取:

foreach (var myRef in myRefs)
{
    var manualRef = CrossCloudFirestore.Current.Instance.Document(myRef.Path);
    var doc = await manualRef.GetAsync();
    referencedDocs.Add(doc);
}

额外排查方向

  • 检查Firebase里存储的引用路径是否正确,确保这些引用指向的文档确实存在
  • 确认你的应用拥有读取这些关联文档的Firebase权限
  • 调试时打印每次循环的myRef.Path,确认循环是否在遍历不同的引用(C# 5+的foreach不会有循环变量捕获问题,但可以确认下)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 22:07:17