FirebaseIOS:使用未声明的类型'DatabaseReference'

时间:2017-08-06 17:08:05

标签: ios swift firebase firebase-realtime-database

抱歉这个奇怪的问题

昨天我不得不更新我的firebase pod,之前一切都很好,但在那之后,我再也无法检索数据了

所以这是我的代码

    //  let userID = FIRAuth.auth()?.currentUser?.uid
    var rsef: DatabaseReference! // undeclared

    rsef = Database.database().reference() //. undeclared

我阅读了官方的firebase设置说明,这些是正确的,但我不知道为什么它说未声明

供参考,这是我的完整代码

 ref.child("KurdishRsta").child((FIRAuth.auth()?.currentUser?.uid)!).childByAutoId().queryOrderedByKey().observe(.childAdded, with:
        { (snapshot) in
            print("Database\(String(describing: snapshot.value))")
        let value = snapshot.value as? NSDictionary
        let FullRsta1 = value?["Rsta"]
        let FullMeaning1 = value?["Meaning"]





        self.RetrivedRsta.insert(RstasFromFirebase(FullRsta:FullRsta1 as! String ,FullMeaning : FullMeaning1 as! String), at: 0)

        self.tableview.reloadData()



    })
}

podfile

    Target 'Dictionary' do
  # Uncomment the next line if you're using Swift or would like to use dynamic frameworks
   use_frameworks!
   pod 'SDWebImage', '~>3.8'
   pod 'Firebase/Core'
   pod 'Firebase/Auth'
   pod 'Firebase/Storage'
   pod 'Firebase/Database'

  # Pods for Dictionary
pod 'SVProgressHUD'
pod 'SKSplashView'
pod "FGTranslator"
pod 'SCLAlertView-Objective-C'
pod 'OneSignal'
pod 'Google/Analytics'
pod 'Firebase/Core'
pod 'Firebase/Auth'
pod 'Firebase/Storage'
pod 'Firebase/Database'
pod 'ChameleonFramework'
pod 'QMChatViewController'
pod 'ApiAI'
pod 'Firebase/RemoteConfig'
pod "ZHPopupView"
pod 'FCAlertView'
pod 'JSQMessagesViewController'
pod "CZPicker"
pod 'DTTJailbreakDetection'
pod 'MBProgressHUD', '~> 1.0.0'
pod 'PayPal-iOS-SDK'

4 个答案:

答案 0 :(得分:35)

确保在您调用DatabaseReference的文件中添加firebase数据库导入,而不是仅单独导入Firebase

 import FirebaseDatabase

答案 1 :(得分:3)

如果它之前有效则必须是pod文件,这是我的参考。

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
pod 'Firebase/Core'
pod 'Firebase/Messaging'
pod 'Firebase/Database'
pod 'Firebase/Crash'
pod 'Firebase/Auth'
pod 'FacebookCore'
pod 'FacebookLogin'
target 'MyAwesomeApp' do
  # Comment this line if you're not using Swift and don't want to use 
dynamic frameworks
  use_frameworks!

  # Pods for MyAwesomeApp

  target 'MyAwesomeAppTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'MyAwesomeAppUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

答案 2 :(得分:0)

在我的情况下,每次更改分支时,git几乎都忽略了Pods目录,因此我不得不运行pod install命令(对配置进行了微小更改)。

在其中一项更改中,我开始收到此错误。我尝试清理构建文件夹,交付数据文件夹,重新启动,但在删除Pods目录的内容并运行pod install之前,它们都无效。

答案 3 :(得分:0)

Swift版本5,Firebase(6.5.0),FirebaseAnalytics(6.0.4),FirebaseDatabase(6.0.0)

按照Google's Page

上的步骤进行操作

import FirebaseDatabase的较早使用已被删除。 在 Swift 文件中仅使用import Firebase,并且要使用数据库引用,可以将变量用作var firebaseDatabaseRef: DatabaseReference!

如果问题仍然存在,请尝试几次清理并构建一个项目,或者使用终端中的以下命令,然后再次尝试清理并构建

$pod deintegrate

然后

$pod install

Podfile

pod 'Firebase/Analytics'
pod 'Firebase/Database'