【问题标题】:FIRDataBaseReference not being recognizedFIRDataBaseReference 未被识别
【发布时间】: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

【问题讨论】:

    标签: ios swift firebase firebase-realtime-database


    【解决方案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()
                }
            
            }
            

            【讨论】:

              猜你喜欢
              • 2012-02-28
              • 2013-04-10
              • 2016-08-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-03-12
              相关资源
              最近更新 更多