Ich benutze Firebase4j (eine Firebase-Bibliothek für Java, ich weiß, es ist viel besser, mit Knoten zu gehen, ich wollte nur versuchen, es mit Java zu tun). In meiner Datenbank muss ich die URL von Bildern mit einer Menge der Bildinformationen beibehalten. Die Sache ist, dass das Bild url sich sehr tief in die JSON istIterieren eines JSON Objekt von Objekten Firebase
"users" : {
"aCategory" : {
"aUser" : {
"photos" : {
"photoUid1" : [ {
"value1" : false,
"value2" : "qwerty",
"score" : 40,
"url" : "http://someurl.com"
}
Deshalb versuche ich, einen Index für die Bilder nach Punkten, enthält die URL an den Ort des Fotos Objekt zeigt bestellt zu schaffen, in die Firebase-Datenbank. Hier beginnt das Problem. Firebase4j läßt Dich nicht drücken, um eine Liste zum Beispiel, so dass der Index endet mit diesem Format auf:
{
"-UID1": {
"firebaseImgUrl": "users/aCategory/aUser/photos/photoUid1",
"score": 31
},
"-UID2": {
"firebaseImgUrl": "users/aCategory/aUser/photos/photoUid2",
"score": 30
}
}
Ich habe bereits die Regel „.indexOn“, um für Feuerbasis mit den richtigen Fotos zu beantworten, wenn Sie gefragt für http://firebaseurl.com/users/...?orderBy="score"&limitToFirst=10
, was ich mache. Ich würde gerne wissen, wie ich ein JSON-Objekt des Objekts iterieren sollte, wie im obigen Beispiel gezeigt. Ich erhalte die Daten von einem Angular 4-Client. Ich habe eine Anzahl von Methoden ausprobiert, die für mich nicht funktioniert haben:
result: Photo[] = [];
for(let key in json){
console.log(key); //prints the UIDs
console.log(key.url); //url is not a property of string
//thus
result.push(new Photo(key.url, key.score)); //not working
}
die 'key' in' lassen Schlüssel in json' ist nur, na ja, die Tasten Ihres json (die die UIDs Saiten). Dies sollte funktionieren: 'result.push (neues Foto (json [key] .url, json [key] .score));' – fmilani