0
我正在使用firebase4j(一個用於Java的firebase庫,我知道和節點一起使用要好得多,我只是想試着用Java來做)。在我的數據庫中,我需要使用一堆圖片信息來保存圖片的網址。問題是,圖片的URL本身是非常深成JSON迭代對象的JSON對象Firebase
"users" : {
"aCategory" : {
"aUser" : {
"photos" : {
"photoUid1" : [ {
"value1" : false,
"value2" : "qwerty",
"score" : 40,
"url" : "http://someurl.com"
}
這就是爲什麼我想創建爲按分數排序的照片索引,包含指向照片對象的位置的URL firebase數據庫。這是問題開始的地方。 Firebase4j不會讓你推,以例如列表,因此該指數與此格式結束:當問
{
"-UID1": {
"firebaseImgUrl": "users/aCategory/aUser/photos/photoUid1",
"score": 31
},
"-UID2": {
"firebaseImgUrl": "users/aCategory/aUser/photos/photoUid2",
"score": 30
}
}
我已經添加規則「.indexOn」爲了火力與正確的照片來回答爲http://firebaseurl.com/users/...?orderBy="score"&limitToFirst=10
,這正是我正在做的。我想知道如何迭代對象的JSON對象,如上例所示。我正在接收來自Angular 4客戶端的數據。我已經嘗試了一些方法,但沒有爲我工作:
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
}
的'key'在'讓json'鍵只,那麼,你的JSON的鍵(這是UID的字符串)。這應該工作:'result.push(新照片(json [key] .url,json [key] .score));'' – fmilani