2017-08-01 45 views
1

这是一个快速的一个我想FIRDataBaseReference不被认可

我想在我的应用程序使用的数据库火力地堡和我做的是安装为一体的教程说。在我的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 
} 

在视图控制器我要使用的数据库,我试图声明FIRDatabaseReference

var ref:FIRDatabaseReference! 

但后来我收到此消息:

Use of undeclared type 'FIRDatabasereference' 

我该怎么办?我已经导入火力地堡在这个特定视图 - 控制太

回答

2

刚刚发现:在此的viewController

0

需要import FirebaseDatabase而不是import Firebase尝试使用此

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

我的布丁文件 - 确保我们对于火力地堡数据库的数据库,你已经安装了吊舱

pod 'Firebase/Core' 
pod 'Firebase/Auth' 
pod 'GoogleSignIn' 
pod 'Firebase/Storage' 
pod 'Firebase/Database' 
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 
} 
1

火力地堡是父母库,FirebaseDatabase是其子库。所以,如果你输入火力地堡,您不必导入FirebaseDatabase,这就是为什么Xcode的自动完成功能将显示已经是没有必要的,包括图书馆一条红线。 这不是问题。

的问题是,您试图访问FIRDatabaseReference,类型目前在火力地堡图书馆起初每堂课您应用中的应用即非常初始加载期间执行分配一些全球init与该类相关的函数/变量。有一种可能性,即当您的的ViewController的:

var ref:FIRDatabaseReference! 

试图访问FIRDatabaseReference,该类型。即火力地堡库尚未被编译的编译器,以便为即时的FIRDatabaseReference是仍然不存在的类型。

SOLUTION

var ref:FIRDatabaseReference? = nil 
0

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

进口的UIKit

进口FirebaseDatabase

类的ViewController:UIViewController的{ VAR裁判:DatabaseReference?

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

}