Mam problem z ustaleniem sposobu sprawdzania danych stron trzecich. Oto jak to jest skonstruowaneC# Ścieżka zapytań dla danych Firebase za pośrednictwem FirebaseDatabase.net
/bucketa/bucketb/bucketc/someguidtypekey/anotherguidtypekey/(fields I want to map here)
Próbowałem to:
var stats = await firebase.Child("bucketa/bucketb/bucketc").OnceAsync<WrapperClass>();
Gdzie WrapperClass
jest combo Key/przedmiot, to przedmiot jest inny kombi Klucz/Object, a następnie, że obiekt jest rzeczywisty klasa.
public class WrapperClass
{
public string Key { get; set; }
public WrapperClass2 Stats { get; set; }
}
public class WrapperClass2
{
public string Key { get; set; }
public RealClass Stats { get; set; }
}
public class RealClass
{
public string Field1 { get; set; }
public string Field2 { get; set; }
public string Field3 { get; set; }
public string Field4 { get; set; }
}
Próbowałem również:
var stats = await firebase.Child("bucketa/bucketb/bucketc/*/*").OnceAsync<RealClass>();
Ale to właśnie wrócił ciąg typu obiektu.
Czy ktoś może pomóc tutaj?
Jest to C#
, używając FirebaseDatabase.net
Edit:
Dobra, teraz jesteśmy coraz bliżej. Wdrożenie @ElmarJensen fix (z jednej ze swoich komentarzach):
...OnceAsync<Dictionary<string, Dictionary<string, RealClass>>>();
Jestem teraz otrzymuję błąd:
Error converting value True to type 'RealClass'
W błędu, to mówi, że próbuje przekonwertować RealClass.property1
gdzie property1
jest typu bool
.
Dlaczego próbuje przekonwertować obiekt property1
na mój typ obiektu RealClass
zamiast obiektu nadrzędnego? Struktura ma dla mnie sens. W wyjątku właściwość "responseData" zawiera wszystkie rekordy, których oczekiwałem w poprawnym formacie JSON, więc nie jestem pewien, co się tutaj dzieje.
Edit 2: Oto rzeczywisty format danych:
{
"0M6bRFLLokR6sIJAcKFN6y91NXB3": {
"-KYdDf62eQUMGb-ov737": {
"somethingBoolean":true,
"asdf":"Joe User",
"oasdfasdfsad": {
"firstName":"asdf",
"lastName":"asdfasdf",
"tasdfme":"Wasdfh",
"teasdfore":6,
"teaasdfme":"SDFO"
},
"fasdfewaef":0,
"startedAt":1.481381640492956E9,
"updatedAt":1.481381687802693E9,
"wfefeaefw":"182",
"asdf": {
"firstName":"asdf",
"lastName":"asdf",
"asdf":"asdfasdfasdf",
"teamScore":0,
"asefeawfawef":"DFDFSWEF"
},
"aefawefawefawefawef":0
}
}
}
Sprawdź to: [pobierania danych] (https://firebase.google.com/docs/database/admin/retrieve-data) –