FIRDataBaseReference 未被识别
Posted
技术标签:
【中文标题】FIRDataBaseReference 未被识别【英文标题】:FIRDataBaseReference not being recognized 【发布时间】:2017-08-01 01:24:25 【问题描述】:我猜这个很快
我正在尝试在我的应用中使用 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
在我要使用数据库的视图控制器中,我尝试声明一个 FIRDatabaseReference
var ref:FIRDatabaseReference!
但后来我收到了这条消息:
Use of undeclared type 'FIRDatabasereference'
我能做什么?我也已经在这个特定的视图控制器中导入了 Firebase
【问题讨论】:
【参考方案1】:刚刚发现:在这个viewController中需要import FirebaseDatabase
而不是import Firebase
【讨论】:
【参考方案2】: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
【讨论】:
【参考方案3】:Firebase 是父库,FirebaseDatabase 是其子库。因此,如果您导入 Firebase ,则不必导入 FirebaseDatabase,这就是 Xcode AutoComplete 在不需要包含的库上显示红线的原因。 这不是问题。
问题是您正在尝试访问 FIRDatabaseReference,在应用程序的初始加载期间,即首先在您的应用程序中的每个类中存在于 Firebase 库中的类型执行以分配与该类关联的一些 global 或 init 函数/变量。当您的 ViewController 的:
var ref:FIRDatabaseReference!
正在尝试访问该类型的 FIRDatabaseReference 。即 Firebase 库尚未由编译器编译,因此在那个时刻 FIRDatabaseReference 是一种仍然不存在的类型。
解决方案:
var ref:FIRDatabaseReference? = nil
【讨论】:
【参考方案4】:试试这个
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'
【讨论】:
【参考方案5】:我也有同样的问题。下面给出的代码解决了我的问题。
import UIKit
import FirebaseDatabase
class ViewController: UIViewController
var ref : DatabaseReference?
override func viewDidLoad()
super.viewDidLoad()
ref = Database.database().reference()
【讨论】:
以上是关于FIRDataBaseReference 未被识别的主要内容,如果未能解决你的问题,请参考以下文章