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 库中的类型执行以分配与该类关联的一些 globalinit 函数/变量。当您的 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 未被识别的主要内容,如果未能解决你的问题,请参考以下文章

Opengl - GLfloat未被识别

Nestjs - 导入服务未被其他服务识别

实体框架 [Key] 标签未被识别

Tweetinvi - User.GetAuthenticatedUser 未被 Visual Studio 识别

Flutter 中的 rxdart 使用未被识别

Python 导入未被识别