繁体   English   中英

在新的Firebase 4.0版本中获取数据库参考

[英]Get a database reference in the new Firebase 4.0 release

在Firebase 3.0+中,获取数据库引用的方法如下:

var ref: FIRDatabaseReference!

ref = FIRDatabase.database().reference()


ref.child("rooms").observeSingleEventOfType(.Value, withBlock: { (snapshot) in

    if snapshot.hasChild("room1"){

        print("true rooms exist")

    }else{

        print("false room doesn't exist")
    }

})

在Firebase 4.0中,命名约定已更改,但我无法使其工作!?

var ref: DatabaseReference!    
ref = Database.database().reference()

有人遇到过这种情况么?

swift编译器建议从小写数据库函数调用中删除()

如果你删除它,它然后抛出错误消息:

  • 数据库没有成员参考

那你怎么得到参考呢?

Pod文件:

pod 'Firebase/Core'
pod 'Firebase/Database'

需要更新firebase文档。 1.在课堂顶部导入这两个

import FirebaseCore

import FirebaseDatabase
  1. 获取数据库引用仅适用于ViewDidLoad()

override func viewDidLoad(){

super.viewDidLoad()
var ref: DatabaseReference!
ref = Database.database().reference()
}

您需要使用更新代码,也许编译器没有很好地建议修复

var ref: DatabaseReference!

ref = Database.database().reference()  

ref.child("rooms").observeSingleEvent(of: .value, with: { (snapshot) in

  // ...

  })

正如您所看到的,代码工作正常,请考虑pod deintegratepod update

在此输入图像描述

您的语法似乎对我来说(对于新的Firebase 4 ):

var ref: DatabaseReference!    
ref = Database.database().reference()

并且,查看他们的源代码( FIRDatabase.h ,您所做的一切都完美匹配:

FIR_SWIFT_NAME(Database)
@interface FIRDatabase : NSObject

+ (FIRDatabase *) database FIR_SWIFT_NAME(database());

- (FIRDatabaseReference *) reference;

你确定你使用的是最新的SDK版本吗? 作为最后的手段,试试这个:

pod cache clean
rm Podfile.lock
rm -rf Pods
pod install
rm -rf DerivedData

对于Firebase 4.0,有一个变化

  • 删除所有常量,协议,类,枚举和类型定义的名称之间的FIR前缀。
  • 将FIRApp重命名为FirebaseApp。
  • 将FIROptions重命名为FirebaseOptions。

链接: https//firebase.google.com/docs/reference/ios/naming-migration-guide

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM