FIRDataBaseReference无法识别

时间:2017-08-01 01:24:25

标签: ios swift firebase firebase-realtime-database

这是一个我猜的快速

我试图在我的应用中使用Firebase数据库,而我正在按照教程说的那样进行安装。在我的AppDelegate中,我已经放了所需的代码:

import UIKit
import Firebase

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?


func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    FirebaseApp.configure()
    return true
}

在我要使用数据库的viewcontroller中,我试图声明一个FIRDatabaseReference

var ref:FIRDatabaseReference!

但接着我收到了这条消息:

Use of undeclared type 'FIRDatabasereference'

我该怎么办?我已经在这个特定的viewcontroller中导入了Firebase

5 个答案:

答案 0 :(得分:2)

刚刚发现:在此viewController中需要import FirebaseDatabase代替import Firebase

答案 1 :(得分:1)

import Firebase
var ref:FIRDatabaseReference = Database.database().reference() //this will give you a ref for database 

func viewDidLoad(){
        ref//you can directly use the reference over here
    }

或者您可以使用

import Firebase
var ref:FIRDatabaseReference?

func viewDidLoad(){
    ref = Database.database().reference() //or any other refrence of child you want to use
}

答案 2 :(得分:1)

Firebase 是父库, FirebaseDatabase 是其子库。因此,如果您导入 Firebase ,则无需导入 FirebaseDatabase ,这就是为什么Xcode AutoComplete在库中显示不需要包含的红线的原因。 这不是问题。

问题是您正在尝试访问 FIRDatabaseReference ,在应用程序的初始加载期间键入Firebase库中的内容,即您应用中的每个类执行以分配与该类关联的一些全局 init 函数/变量。当您的 ViewController

时,可能会出现这种情况
var ref:FIRDatabaseReference!

正在尝试访问该类型的 FIRDatabaseReference 。即Firebase库尚未由编译器编译,因此 FIRDatabaseReference 是一种仍然不存在的类型。

解决方案

var ref:FIRDatabaseReference? = nil

答案 3 :(得分:0)

尝试使用此

import UIKit
import Firebase
let databaseRef = Database.database().reference().child("message")

我的Pod文件 - 请确保我们为您安装了适用于Firebase数据库的pod

pod 'Firebase/Core'
pod 'Firebase/Auth'
pod 'GoogleSignIn'
pod 'Firebase/Storage'
pod 'Firebase/Database'

答案 4 :(得分:0)

我也有同样的问题。下面给出的代码解决了我的问题。

import UIKit
import FirebaseDatabase

class ViewController: UIViewController {

var ref : DatabaseReference?

    override func viewDidLoad() {
        super.viewDidLoad()
        ref = Database.database().reference()
    }

}