我正在从一个应用程序将数据保存到Google Cloud Firestore数据库中,并希望在另一个应用中读取数据。
看起来我的两种工作方式有些不匹配。我正在用以下调用将数据保存到数据库中:
await CrossCloudFirestore.Current.Instance.Collection("Records").AddAsync(newRecord);
然后我有以下方法在另一个应用程序中获取数据:
public async Task<IReadOnlyCollection<T>> GetAll<T>(CancellationToken ct) where T : IDataRecord
{
CollectionReference collection = _fireStoreDb.Collection(_collection);
QuerySnapshot snapshot = await collection.GetSnapshotAsync(ct);
return snapshot.Documents.Select(x => x.ConvertTo<T>()).ToList();
}
其中_collection = "Records";
经过几次CrossCloudFirestore.Current.
调用后,我的Firebase数据库如下所示:
https://i.stack.imgur.com/HzHE1.png
经过几次调查,文件名似乎是问题所在?如果我没有弄错自定义创建的文档名称";记录";CCD_ 3方法能够获得必要的数据。有人能帮我解决这个问题并指出我做错了什么吗?
如果我在Firebase端的数据看起来像这个GetAll
方法工作正常:
https://i.stack.imgur.com/Psrcx.png
问题出现在一个数据库字段中,该字段在C#端设置为TimeSpan。Firebase正在将此TimeSpan属性更改为具有子属性的MAP。正如我之前已经在想的那样,将这个TimeSpan改为保持秒数的两倍。经过这次改变,一切似乎都很好!