从Firebase数据库检索聊天消息列表时,应用程序崩溃

时间:2019-06-25 04:29:01

标签: ios swift firebase firebase-realtime-database

我正在通过Firebase实时数据库开发实时聊天应用程序,因此消息发送成功,但是在那之后我试图获取消息列表,这时我就崩溃了

这是我尝试过的一些代码,我想告诉你,请看一下我的代码

var ref: DatabaseReference!

viewDidLoad()内部

ref = Database.database().reference()

func loadMessageData() {
    self.ref.child("Message").observe(.childAdded, andPreviousSiblingKeyWith: { (snapshot, str) in
        print(snapshot)
        if let dictonary = snapshot.value as? [String:AnyObject] {
            print(snapshot)
        }
    }, withCancel: nil)
}

我要在此处添加我的消息表结构的屏幕截图,所以请看一下 enter image description here

错误消息

  

致命错误:在隐式展开可选值时意外发现nil

     

2019-06-25 09:50:52.088617 + 0530 SMSApp [4378:1003736]致命错误:意外发现nil,而隐式展开了一个可选值

1 个答案:

答案 0 :(得分:0)

为DBHelper创建类

import Foundation
import FirebaseDatabase
import FirebaseStorage

class DBProvider
{
    private static let _instance = DBProvider()
    private init () {}

    static var Instance:DBProvider{
        return _instance
    }
    var dbRef:DatabaseReference{
        return  Database.database().reference()
    }

    var userRef:DatabaseReference{
        return dbRef.child(CONSTANT.DBPROVIDER.USER);
    }

    var messageRef:DatabaseReference{
        return dbRef;
    }
}

用法

DBProvider.Instance.messageRef.child("Your Key").observe(.childAdded){(snapShot:DataSnapshot) in

      if let data = snapShot.value as? [String:Any]
      {
           print(data)

      }
}