# #c# #unity3d #google-cloud-firestore
Вопрос:
Я успешно извлекаю свой документ Firestore, который выглядит примерно так:
Я создал myMap
, обновив документ экземпляром этого класса:
using System;
using Firebase.Firestore;
[FirestoreData]
public class MyData
{
[FirestoreProperty("myBoolean")]
public bool MyBoolean { get; set; }
[FirestoreProperty("myNumber")]
public int MyNumber { get; set; }
[FirestoreProperty("myTimestamp")]
public DateTime MyTimestamp { get; set; }
}
Как мне преобразовать myMap
обратно в экземпляр MyMap
после извлечения документа?
Я могу использовать myDocumentSnapshot.ConvertTo<MyMap>();
для преобразования всего документа, но я не знаю, как это сделать для карты в документе.
Я пытаюсь сделать что-то в этом роде, но ConvertTo
в данном контексте это не работает:
var myDocument = myDocumentSnapshot.ToDictionary();
var myMap = myDocument["myMap"].ConvertTo<MyMap>();
Как я могу десериализоваться MyMap
после получения документа?
Ответ №1:
Вообще не эксперт, но, следуя документам, я думаю, вы бы использовали GetValue
, например,
var myMap = myDocument.GetValue<MyMap>("myMap");
или для того, чтобы не получить исключение TryGetValue
, например,
if(!myDocument.TryGetValue<MyMap>("myMap", out var myMap)
{
Debug.LogError("Could not deserialize myMap!");
}