如何将userID输入firebase网址。我目前收到此错误..."使用未解析的标识符"。
我尝试移动"让默认设置:..."和"让用户ID:..."高于"让firebase = Firebase(网址:..)"但后来出现了这个错误......"实例成员'默认'不能在类型TableViewController"。
上使用我要做的是加载与userID匹配的用户的用户个人资料。
以下相关代码。
let firebase = Firebase(url:"https://<myfirebase>.firebaseio.com/users/\(userID)")
var items = [NSDictionary]()
override func viewDidLoad() {
super.viewDidLoad()
let rightItemBtn = UIButton()
rightItemBtn.backgroundColor = UIColor.whiteColor()
rightItemBtn.frame = CGRectMake(40, 40, 60, 35)
let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
let userID = (defaults.objectForKey("userID") as? String)!
let labelText = userID
label.frame = CGRectMake(40, 40, 50, 35)
label.text = labelText
}
答案 0 :(得分:0)
您使用userId
超出范围,在不存在的位置。
执行类似这样的操作,将firebase保留为可选属性,然后当userId创建一个url,然后使用该URL创建Firebase
Object。
let userAPI = "https://<myfirebase>.firebaseio.com/users/"
var firebase : Firebase?
var items = [NSDictionary]()
override func viewDidLoad() {
super.viewDidLoad()
let rightItemBtn = UIButton()
rightItemBtn.backgroundColor = UIColor.whiteColor()
rightItemBtn.frame = CGRectMake(40, 40, 60, 35)
let defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults()
let userID = (defaults.objectForKey("userID") as? String)!
let url = "\(userAPI)\(userID)"
firebase = Firebase(url:url)
let labelText = userID
label.frame = CGRectMake(40, 40, 50, 35)
label.text = labelText
}
答案 1 :(得分:0)
您似乎正在尝试为当前经过身份验证的用户(?)
加载一些用户信息给出
的结构users
uid_0:
user_name: "Buzz Aldrin"
如果是这样,那就太简单了:
let fb = Firebase(url:"https://<myfirebase>.firebaseio.com")
let uid = fb.authData.uid
let usersRef = fb.childByAppendingPath("users")
let thisUserRef = usersRef.childByAppendingPath(uid)
thisUserRef.observeSingleEventOfType(.Value, withBlock: { snapshot in
let userName = snapshot.value.objectForKey("user_name") as! String
print(userName)
})
我不知道NSUserDefaults扮演什么角色,但如果用户通过Firebase身份验证,则应该从authData中检索它。如果没有,并且您已将其存储在NSUserDefaults中,请从那里检索它而不是authData。