मैं स्विफ्ट और फायरबेस सीखने के लिए एक साधारण चैट ऐप बना रहा हूं। मेरे पास एक क्वेरी है जो चैट रूम के संदेशों को तालिका में लोड करने के लिए जांचती है। व्यू। क्वेरी स्नैपशॉट लौटाती है लेकिन मुझे डेटा को स्टोर करने और इसे ठीक से लोड करने में परेशानी हो रही है। मैं स्नैपशॉट से एक शब्दकोश बनाया तो मैं व्यक्तिगत बच्चे मान प्राप्त कर सकते हैं, लेकिन वे नहीं के बराबर लौट रहे हैं: ब्रेकप्वाइंट परफायरबेस क्वेरी स्नैपशॉट शून्य?
query.observeSingleEvent(of: .childAdded, with: { snapshot in
print(snapshot)
let indexPaths = self.messages.enumerated().map {
IndexPath(row: $0.0, section: 0)
}
guard let messagesDict = snapshot.value as? [String:AnyObject] else { return }
guard let sender = messagesDict["sender"] as? String else { return }
guard let text = messagesDict["text"] as? String else { return }
guard let timestamp = messagesDict["timestamp"] as? Int else { return }
let message = Message.init(key: snapshot.key, sender: sender as! String, text: text as! String, timestamp: timestamp)
self.messages.append(message)
self.tableView.reloadData()
})
po messagesDict
रिटर्न डेटा:
▿ 1 element
▿ 0 : 2 elements
- key : "-KotqLUUucaRagTRt967"
▿ value : 3 elements
▿ 0 : 2 elements
- key : sender
- value : eGTYRSo81JefgasYLRHUFHUTnEC3
▿ 1 : 2 elements
- key : text
- value : test
▿ 2 : 2 elements
- key : timestamp
- value : 1499914135546
एप्लिकेशन अगले ब्रेकप्वाइंट जहां के लिए हो जाता है मैंने guard let sender
सेट किया है लेकिन ऐप रिटर्न हिट करता है और कोड के बाकी ब्लॉक को निष्पादित करता है। मैं प्रेषक, टेक्स्ट और टाइमस्टैम्प तत्वों को सही तरीके से कैसे एक्सेस करूं ताकि मैं उन्हें चर के लिए सेट कर सकूं और उन्हें अपनी तालिका के लिए सरणी में संग्रहीत कर सकूं?
किसी भी मदद की सराहना की जाएगी। मैं थोड़ी देर के लिए इस पर अटक गया हूं और मैं आंखों की एक और जोड़ी का उपयोग कर सकता हूं!
धन्यवाद !!
अतिरिक्त जानकारी:
क्वेरी:
let query = rootRef.child("chat-messages/\(chatKey)")
डेटाबेस संरचना:
{
"chat-messages" : {
"-KotqKI4zF9cS5XMR9WU" : {
"-KotqLUUucaRagTRt967" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test",
"timestamp" : 1499914135546
}
},
"-KotqvBoFFzOTY6Q1fO7" : {
"-KotqwGAJ85NuAp-Lh3Z" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test",
"timestamp" : 1499914290279
}
},
"-KotsNgF0ou5MIDn2l5K" : {
"-KotsOSXw7OS_3xuXZgP" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test",
"timestamp" : 1499914671997
},
"-KotsPqrCpipMLulNNFl" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test44",
"timestamp" : 1499914677715
}
},
"-Kotsv1Vv19dEF2q7XQu" : {
"-KotsvYO9JvLY8gdTnA0" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test",
"timestamp" : 1499914811675
},
"-KotsvxKXzIwbyvbwLPp" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test",
"timestamp" : 1499914813335
},
"-Kotsw9vLiEf6KquU__e" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test",
"timestamp" : 1499914814205
},
"-KotswHnzmfkEXih1O7y" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test",
"timestamp" : 1499914814709
},
"-KotszHKBt254jZnUMAl" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test46456",
"timestamp" : 1499914826967
}
},
"-KoyheS01YxWExSNxl_H" : {
"-Koyhf3G-FPEDrxQOcpU" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test",
"timestamp" : 1499995746607
}
},
"-Koyjc_aBaF1kFE-8Bll" : {
"-Koyjd9PnO6sPOhS7P27" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test",
"timestamp" : 1499996263096
},
"-KoyjdzSEi5twTVQMGOu" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test",
"timestamp" : 1499996266491
},
"-Koyje2C9E524kV7nhLY" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test",
"timestamp" : 1499996266730
}
},
"-KpfUGw45F1FU2IrR87A" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test",
"timestamp" : 1500746948396
},
"-KpfUHQGuTDi4yZutS5K" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test",
"timestamp" : 1500746950368
},
"-KpfUHdSXeTzauATsDAP" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "test",
"timestamp" : 1500746951277
},
"-Kpfia0fXsoqpRtIr1kU" : {
"sender" : "eGTYRSo81JefgasYLRHUFHUTnEC3",
"text" : "gerg",
"timestamp" : 1500750962815
}
},
"chat-participants" : {
"-KotqKI4zF9cS5XMR9WU" : {
"eGTYRSo81JefgasYLRHUFHUTnEC3" : {
"username" : "tester"
}
},
"-KotqvBoFFzOTY6Q1fO7" : {
"eGTYRSo81JefgasYLRHUFHUTnEC3" : {
"username" : "tester"
}
},
"-KotsNgF0ou5MIDn2l5K" : {
"eGTYRSo81JefgasYLRHUFHUTnEC3" : {
"username" : "tester"
}
},
"-Kotsv1Vv19dEF2q7XQu" : {
"eGTYRSo81JefgasYLRHUFHUTnEC3" : {
"username" : "tester"
}
},
"-KoyheS01YxWExSNxl_H" : {
"eGTYRSo81JefgasYLRHUFHUTnEC3" : {
"username" : "tester"
}
},
"-Koyjc_aBaF1kFE-8Bll" : {
"eGTYRSo81JefgasYLRHUFHUTnEC3" : {
"username" : "tester"
}
},
"-KpfLBjQdPiX2kSrl1yF" : {
"eGTYRSo81JefgasYLRHUFHUTnEC3" : {
"username" : "tester"
}
}
},
"chats" : {
"-KotqKI4zF9cS5XMR9WU" : {
"currentName" : "test",
"date" : 1499914130657
},
"-KotqvBoFFzOTY6Q1fO7" : {
"currentName" : "test",
"date" : 1499914285904
},
"-KotsNgF0ou5MIDn2l5K" : {
"currentName" : "test",
"date" : 1499914668844
},
"-Kotsv1Vv19dEF2q7XQu" : {
"currentName" : "test",
"date" : 1499914809570
},
"-KoyheS01YxWExSNxl_H" : {
"currentName" : "test",
"date" : 1499995744095
},
"-Koyjc_aBaF1kFE-8Bll" : {
"currentName" : "test",
"date" : 1499996260740
},
"-KpfLBjQdPiX2kSrl1yF" : {
"currentName" : "test3222",
"date" : 1500744567786
}
},
"user-chats" : {
"eGTYRSo81JefgasYLRHUFHUTnEC3" : {
"-KotqKI4zF9cS5XMR9WU" : {
"chatKey" : "-KotqKI4zF9cS5XMR9WU",
"currentName" : "test"
},
"-KotqvBoFFzOTY6Q1fO7" : {
"chatKey" : "-KotqvBoFFzOTY6Q1fO7",
"currentName" : "test"
},
"-KotsNgF0ou5MIDn2l5K" : {
"chatKey" : "-KotsNgF0ou5MIDn2l5K",
"currentName" : "test"
},
"-Kotsv1Vv19dEF2q7XQu" : {
"chatKey" : "-Kotsv1Vv19dEF2q7XQu",
"currentName" : "test"
},
"-KoyheS01YxWExSNxl_H" : {
"chatKey" : "-KoyheS01YxWExSNxl_H",
"currentName" : "test"
},
"-Koyjc_aBaF1kFE-8Bll" : {
"chatKey" : "-Koyjc_aBaF1kFE-8Bll",
"currentName" : "test"
},
"-KpfLBjQdPiX2kSrl1yF" : {
"chatKey" : "-KpfLBjQdPiX2kSrl1yF",
"currentName" : "test3222"
}
}
},
"user-friends" : {
"36HDn5XyxjMCcMluJJ9KPBOCDMm1" : {
"eGTYRSo81JefgasYLRHUFHUTnEC3" : {
"username" : "tester"
}
},
"eGTYRSo81JefgasYLRHUFHUTnEC3" : {
"36HDn5XyxjMCcMluJJ9KPBOCDMm1" : {
"username" : "tester2"
}
}
},
"user-invites" : {
"eGTYRSo81JefgasYLRHUFHUTnEC3" : {
"36HDn5XyxjMCcMluJJ9KPBOCDMm1" : {
"username" : "tester2"
}
}
},
"users" : {
"36HDn5XyxjMCcMluJJ9KPBOCDMm1" : {
"email" : "[email protected]",
"username" : "tester2"
},
"eGTYRSo81JefgasYLRHUFHUTnEC3" : {
"email" : "[email protected]",
"username" : "tester"
}
}
}
आपकी क्वेरी क्या है? और आपकी डेटाबेस संरचना? – Pipiks
इस पर आपकी मदद के लिए धन्यवाद! मैंने क्वेरी और डेटाबेस संरचना को शामिल करने के लिए प्रश्न संपादित किया। – winston
@freeman मैंने कुछ दिन पहले एक सुझाए गए समाधान को जोड़ा - समस्या को हल करें या अभी भी समस्याएं हैं? – Yasir