firebase 如何获取具有动态名称的Firestore文档字段

hfsqlsce  于 2023-03-31  发布在  其他
关注(0)|答案(1)|浏览(133)

我用Plugin.CloudFirestore
为了从文档中获取值,我通常用Class表示它们,例如:

public class FirestoreDoc
{
    public string key { get; set; }
}

firestoreDoc.ToObject<FirestoreDoc>().key;

现在我有一个具体的问题。文档的键的名称是由应用程序的用户动态添加的。从文档中获取键的名称很容易,但由于我不能动态添加类成员到Class中,我如何获取它们对应的值?

编辑

一些额外的信息。
我尝试获取的字段类型为array,它们将reference存储到其他数据库文档中。
下面是我的尝试:
var referenceList = firestoreDoc.Data[customKey];
通过这行**,我成功地获得了特定键的值**,但我仍然有两个问题:

  • 我不能遍历我得到的列表的值,
  • List的值是string类型,而不是IDocumentReference类型,因此我无法调用GetAsync()方法来获取引用的文档。

第二个问题,我尝试了一个演员表:
var referenceList = (List<IDocumentReference>)firestoreDoc.Data[customKey];
但强制转换的结果是一个错误:System.InvalidCastException: 'Specified cast is not valid.'

9udxz4iz

9udxz4iz1#

在尝试了不同的方法之后,这里是解决方案:

var referenceList = (IEnumerable<Object>)firestoreDoc.Data[customKey];

foreach (var reference in referenceList)
{
     var referredDoc = await ((IDocumentReference)reference).GetAsync();
}

相关问题