Метка времени базы данных Firebase не сериализуется, появляется ошибка {"При синтаксическом анализе значения обнаружен неожиданный символ: {. Путь 'date', - PullRequest
0 голосов
/ 12 июля 2020

Я хочу получить данные временной метки коллекции firestore, но получаю сообщение об ошибке - {"При анализе значения обнаружен неожиданный символ: {. Путь 'date',

снимок экрана данных поля даты

снимок экрана данных

образец набора данных

{"Tyres":"12","sr_no":"","TruckNumber":"TS 12345","image_url":"https://firebasestorage.googleapis.com/v0/b/truck-41c31.appsp.jpg?alt=media&token=2dc86208-7f71-4e3c-876c-70a80d4822bf","date":{}}

код

Query truckQuery = fireStoreDb.Collection("users/QRRsqyWUas/orders");
                QuerySnapshot truckQuerySnapshot = await truckQuery.GetSnapshotAsync();
                List<Truck> lstTruck = new List<Truck>();

                foreach (DocumentSnapshot documentSnapshot in truckQuerySnapshot.Documents)
                {
                    if (documentSnapshot.Exists)
                    {
                        Dictionary<string, object> city = documentSnapshot.ToDictionary();
                        string json = JsonConvert.SerializeObject(city);
                        Truck newtruck = JsonConvert.DeserializeObject<Truck>(json);
                        newtruck.TruckNumber = documentSnapshot.Id;
                        newtruck.date = documentSnapshot.CreateTime.Value.ToDateTime();
                        lstTruck.Add(newtruck);
                    }
                }

модель publi c class Truck

 {

        [FirestoreProperty]
        [Required]
        public string TruckNumber { get; set; }
        [FirestoreProperty]
        [Required]
        public string Tyres { get; set; }
      
        public DateTime date { get; set; }
        [FirestoreProperty]
        [Required]
        public string image_url { get; set; }
        [FirestoreProperty]
        [Required]
        public string sr_no { get; set; }
    }

данные поля даты firestore - 29 June 2020 at 22:23:44 UTC+5:30

1 Ответ

1 голос
/ 13 июля 2020
 foreach (DocumentSnapshot documentSnapshot in truckQuerySnapshot.Documents)
                {
                    if (documentSnapshot.Exists)
                    {
                        Dictionary<string, object> city = documentSnapshot.ToDictionary();
                        city["date"] = DateTime.Now.ToString();//modified here for resolve
                        string json = JsonConvert.SerializeObject(city);
                        Truck newtruck = JsonConvert.DeserializeObject<Truck>(json);
                        newtruck.Docid = documentSnapshot.Id;
                        newtruck.date = documentSnapshot.CreateTime.Value.ToDateTime();
                        lstTruck.Add(newtruck);
                    }
                }

Теперь я назначил datetime перед serializeObject (city), и моя ошибка исчезла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...