Swift 为什么firebase数据库中的更改会导致我的应用程序崩溃

Swift 为什么firebase数据库中的更改会导致我的应用程序崩溃,swift,database,firebase,firebase-realtime-database,webview,Swift,Database,Firebase,Firebase Realtime Database,Webview,我正在使用WebView和Firebase作为数据库构建一个应用程序。用于加载vewView的url来自数据库 我已经正确地实现了WebView和Firebase,但问题是当我更改数据库中的url时,我的应用程序崩溃了。它基本上是说url是零…这是不现实的,因为新的url是完全有效的 即使在我重建应用程序时,错误仍在继续 class ViewController: UIViewController { var dbRef: DatabaseReference! var nextUrl = "h

我正在使用
WebView
Firebase
作为数据库构建一个应用程序。用于加载vewView的url来自数据库

我已经正确地实现了
WebView
Firebase
,但问题是当我更改数据库中的url时,我的应用程序崩溃了。它基本上是说url是零…这是不现实的,因为新的url是完全有效的

即使在我重建应用程序时,错误仍在继续

class ViewController:  UIViewController {
var dbRef: DatabaseReference!
var nextUrl = "https://www.google.co.uk/"
func retrieveUrl () {
    dbRef = Database.database().reference().child("EXAMPLE")
    dbRef.observe(.value) {
        (snapshot) in
        let value = snapshot.value as! NSDictionary
        let url = value["url"]!
        self.nextUrl = (url as! String)
        print (nextUrl)
        print ("webview is about to load")
        let request = URLRequest (url: URL(string: nextUrl)!)
        self.webView.load(request)
        self.webView.addObserver(self, forKeyPath: #keyPath(WKWebView.isLoading), options: .new, context: nil)
    }
    print ("function observe is called")
}

override func viewDidLoad () {
    super.viewDidLoad()
    retrieveUrl()
}
以下是致命错误:

线程1:致命错误:在展开可选值时意外发现nil


错误只是说您正在展开一个nil值,这就是它崩溃的原因。请尝试避免此符号
在您的代码中是的,但url不是零,因为我刚刚在数据库中更改了它,所以我没有删除它。。看到这个了吗?对不起,我不明白。在你提到的问题中没有提到任何数据库?我猜是
let url=value[“url”]是引发错误的原因。但是,我们不能确定,因为您没有告诉我们哪条线路正在崩溃。如果是那一行,那是因为示例节点中的任何内容都不包含url的直接子节点。如果我们能看到你的结构,会有帮助的。要获取Firebase结构,请使用Firebase控制台->导出JSON,然后复制并粘贴结构片段。请看,错误只是说您正在展开一个nil值,这就是它崩溃的原因。请尝试避免此符号
在您的代码中是的,但url不是零,因为我刚刚在数据库中更改了它,所以我没有删除它。。看到这个了吗?对不起,我不明白。在你提到的问题中没有提到任何数据库?我猜是
let url=value[“url”]是引发错误的原因。但是,我们不能确定,因为您没有告诉我们哪条线路正在崩溃。如果是那一行,那是因为示例节点中的任何内容都不包含url的直接子节点。如果我们能看到你的结构,会有帮助的。要获取Firebase结构,请使用Firebase控制台->导出JSON,然后复制并粘贴结构片段。看见