Ios 无错误地创建Firebase引用
我目前在为我的iOS应用程序创建正确的Firebase引用时遇到问题。我一整天都在为这件事烦恼,就是找不到解决办法Ios 无错误地创建Firebase引用,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我目前在为我的iOS应用程序创建正确的Firebase引用时遇到问题。我一整天都在为这件事烦恼,就是找不到解决办法 import UIKit import Firebase import FirebaseDatabase class ViewController: UIViewController { @IBOutlet var remoteSwitch: UISwitch! @IBOutlet var label: UILabel! var ref: FIRDat
import UIKit
import Firebase
import FirebaseDatabase
class ViewController: UIViewController {
@IBOutlet var remoteSwitch: UISwitch!
@IBOutlet var label: UILabel!
var ref: FIRDatabaseReference!
//That's where i get the Error ! --> Expected declaration
ref = FIRDatabase.database().reference()
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
如果有人能告诉我如何在iOS 10、Xcode 8中正确分配Firebase数据库引用,那就太好了
Firebase安装在此之前一直成功。没有错误,一切都是用podfile等设置的
谢谢
问题更新
感谢@Ronatary提供在viewDidload中创建引用的提示。成功了
我现在可以从viewDidLoad函数写入Firebase。
但是,当我想分配额外的UI开关将数据写入数据库时,仍然存在问题
import UIKit
import Firebase
import FirebaseDatabase
class ViewController: UIViewController {
@IBOutlet var remoteSwitch: UISwitch!
@IBOutlet var label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
let ref = FIRDatabase.database().reference()
ref.child("timeo").setValue(true)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func switched(_ sender: UISwitch) {
if remoteSwitch.isOn == true {
label.text = "ON"
//location *
ref.child("timeo").setValue(true)
}
else {
label.text = "OFF"
//location *
ref.child("timeo").setValue(false)
}
}
}
我认为那里的作用域有问题,因为它显示了位置*的错误,它不知道这些变量
如果有人能帮我,那就太好了。谢谢
蒂梅奥
更新
您可以这样做:
import UIKit
import Firebase
import FirebaseDatabase
class ViewController: UIViewController {
@IBOutlet var remoteSwitch: UISwitch!
@IBOutlet var label: UILabel!
var ref = FIRDatabase.database().reference()
override func viewDidLoad() {
super.viewDidLoad()
}
}
另外,请确保已安装Pod:
pod 'Firebase/Database'
你可以直接这样做:
import UIKit
import Firebase
import FirebaseDatabase
class ViewController: UIViewController {
@IBOutlet var remoteSwitch: UISwitch!
@IBOutlet var label: UILabel!
var ref = FIRDatabase.database().reference()
override func viewDidLoad() {
super.viewDidLoad()
}
}
另外,请确保已安装Pod:
pod 'Firebase/Database'
问题: 在
viewDidLoad()
中创建并初始化ref
常量,因此它仅在viewDidLoad()
的范围内可用
解决方案:
要在其他方法(如switched(:)
方法)中访问它,您需要创建一个类型为FIRDatabaseReference
的引用,然后可以在viewDidLoad()
中对其进行初始化,以便能够在此之后设置值(提示在代码注释中):
问题: 在
viewDidLoad()
中创建并初始化ref
常量,因此它仅在viewDidLoad()
的范围内可用
解决方案:
要在其他方法(如switched(:)
方法)中访问它,您需要创建一个类型为FIRDatabaseReference
的引用,然后可以在viewDidLoad()
中对其进行初始化,以便能够在此之后设置值(提示在代码注释中):
例如,您需要将
ref=FIRDatabase.database().reference()
放入类似viewDidLoad
的方法中。因为您试图在类中分配它,所以它现在确实给出了一个错误scope@ronatory检查更新添加我对更新问题的回答您需要将ref=FIRDatabase.database().reference()
放入类似viewDidLoad
的方法中。因为您试图在类中分配它,所以它现在确实给出了一个错误scope@ronatory检查更新我对你更新的问题的回答谢谢你这么多你帮了我这么多。一整天都在努力。干杯是的,我能帮你真是太好了!干杯非常感谢你帮了我这么多。一整天都在努力。干杯是的,我能帮你真是太好了!干杯