firebaseのデータをCompanyオブジェクトの配列にロードしようとしていますが、 printステートメントを使って、私はviewDidLoad
メソッドとobserve
メソッドが呼び出されていないことに気付きました。 firebaseのテキストの束を除いて、コンソールには何も印刷されません(つまり、「Firebase自動画面レポートが有効になっています...」)。firebaseビューコントローラが呼び出されず、コンソールに何も出力されないということをViewdidloadとobserveメソッドを参照してください。
import UIKit
import FirebaseDatabase
class Information: UIViewController {
var ref:FIRDatabaseReference?
var databaseHandle:FIRDatabaseHandle?
var companiesInformation = [Company]() //holds name, booth, image
override func viewDidLoad() {
super.viewDidLoad()
print("viewDidLoad was called")
//Set firebase database reference
ref = FIRDatabase.database().reference()
// Retrieve posts and listen for changes
databaseHandle = ref?.child("companies").observe(.childAdded, with: { (snapshot) in
// Code that executes when child is added
let company: Company = Company()
company.name = snapshot.value(forKeyPath: "name") as! String
self.companiesInformation.append(company)
print("databaseHandle was called")
})
}
}
ココアポッドを使用してFirebaseとFirebaseリアルタイムデータベースをダウンロードした後、私は私のアプリの委任にFirebaseコードの2つの、必要な部分を追加し、私のアプリは、エラーなしで実行されます。私は唯一のように2回の黄色の警告を以下に示している:
なぜデータベースが動作していないと、なぜ何も印刷がコンソールにありますか?
Firebaseデータベースを使用している場合、インポートはFirebase *をインポートする必要があります。また、デリゲートdidFinishLaunchingWithOptions funcでは、FIRApp.configure()が必要です。あなたのviewControllerクラスでviewDidLoadメソッドが呼び出されていない場合、Firebaseと無関係なコードのどこかに問題があります。 databaseHandleは必要ないかもしれません。残りのコードに依存します。問題のエラーは、PodFileが正しく設定されていないか、またはCocoaPodが古くなっていることが原因です。質問に追加してみてください。ホウ – Jay