我想獲得與該事件對應用戶無法獲取火力地堡調用觀察/ observeSingleEvent回調
我有活動的列表
let eventsRef = FIRDatabase.database().reference.child("Events")
我有用戶
列表let usersRef = FIRDatabase.database().reference.child("Users")
我的事件和用戶模型如下
-
個
- 活動
- 事件1
- eventHost:user1_uid
- 事件2
- eventHost:user2_uid
- 事件1
- 用戶
- 用戶1
- 電子郵件:EMAIL1
- 用戶2
- 電子郵件:EMAIL2
- 用戶1
以下的回調(在事件模型)則永遠不會調用:
if let userKey = eventData["eventHost"] as? String {
userRef = usersRef.child(userKey)
userRef.observeSingleEvent(of: .value, with: { snapshot in
...
})
}
我可以證實,我沒有啓用磁盤持久性和UID用戶可用。有什麼我明顯錯誤的嗎?
====== 編輯:簡化事件模型
import Foundation
import Firebase
class Event {
// event metadata
private var _eventId: String!
private var _eventHost: User!
var eventId: String {
return _eventId
}
var eventHost: User {
return _eventHost
}
init(eventId: String, eventData: Dictionary<String, Any>) {
self._eventId = eventId
if let userKey = eventData["eventHost"] as? String {
let usersRef = FIRDatabase.database().reference().child("Users")
let userRef = usersRef.child(userKey)
print(userRef)
userRef.observeSingleEvent(of: .value, with: { (snapshot) in
print("USERY: \(snapshot.key)")
if let userDict = snapshot.value! as? Dictionary<String, Any> {
let id = snapshot.key
self._eventHost = User(userId: id, userData: userDict)
}
})
}
}
}
的print(userRef)
解析爲
https://xxxx.firebaseio.com/Users/AFHpS3npOga4tfj10GS2HGeT9uJ3`
這是在我的火力地堡結構有效的對象。火力地堡用戶結構的片段
"AFHpS3npOga4tfj10GS2HGeT9uJ3" : {
"email" : "[email protected]",
"firstName" : "Wilma",
"lastName" : "Flintstone",
"profileImageUrl" : "http://images.iimg.in/c/569f4771c45d324bda8b4660-4-501-0-1453279096/google/user-icon-png-pnglogocom.img",
"provider" : "Firebase",
"userId" : "AFHpS3npOga4tfj10GS2HGeT9uJ3"
},
我想幫忙,但我沒有看到任何東西,顯然是錯誤的。我認爲當你說回調從未被調用時,你會在其中放置一個斷點? –
@JenPerson是的,我把一個斷點,並沒有得到那 – avinash
如果你在你的觀察功能打印的東西,將執行? –