私のアプリケーションでは、Firebase/FirebaseAuth/FirebaseDatabase/FirebaseStorage /などのPodをダウンロードしてインストールし、AppDelegateなどでFIRApp.configure()を使用しました。ユーザーのログインとログアウトに成功し、アップロード/ダウンロードできましたデータ。突然Firebaseが私のユーザのUUIDを認識していません。なぜ私は分からないが、それはちょうど停止した。Firebase Unique Identifier(ユーザID)が認識されず、データベースにアクセスしようとするとアプリがクラッシュしますか? Swift iOS9
アプリがすべてロードされても(まだUUIDはありませんが、実際にアプリが読み込まれます)、Firebaseに接続してデータをアップロード/ダウンロードする必要がある画面に移動しようとするとクラッシュします。これはFirebaseにアクセスする必要があるすべての画面で行われますが、他の画面では実行されません。クラッシュが発生する行を表示するために、以下のColorControllerビューコントローラーを追加しました。
私のAppDelegate 'didFinishLaunchingWithOptions'では、アプリケーションがFirebaseに接続されていることを確認するコードを追加し、「正常に接続されました」と記録します。しかし、print文でUUIDをチェックするコードをいくつか追加し、nilを返します。
アイデア?ここで
import UIKit
import Firebase
import FirebaseAuth
import FirebaseDatabase
import FirebaseStorage
import GoogleMaps
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
override init() {
super.init()
//Configure App for FireBase
FIRApp.configure()
//Firebase app Offline Updates
FIRDatabase.database().persistenceEnabled = true
GMSServices.provideAPIKey("myAPIKey")
}//end override init
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//Make sure the app is connected to Firebase
let connectedRef = FIRDatabase.database().referenceWithPath(".info/connected")
connectedRef.observeEventType(.Value, withBlock: {
(connected) in
let currentUserID = FIRAuth.auth()?.currentUser?.uid
if let boolean = connected.value as? Bool where boolean == true {
//This line successfully prints
print("\nApp Delegate: Firebase is successfully connected\n")
print("\nApp Delegate: UUID is \(currentUserID)\n")
} else {
print("\nApp Delegate: Firebase is NOT connected\n")
}
})
if currentUserID != nil{
print("\nApp Delegate: UUID is \(currentUserID)\n")
} else{
//These 2 lines print and UUID prints as "nil"
print("\nApp Delegate: No User ID Available\n")
print("\nApp Delegate: UUID is \(currentUserID)\n")
}
}
ColorController
//this is from line 'let usersRef = self.dbRef.child("users")'
Thread1: EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0)
「UUID」とは、ユーザーの** UID **(各Firebase認証ユーザーの一意のID)を参照しているようです。そのことを理解するまでにはしばらく時間がかかりました。正しい用語を使用するように質問を更新したい場合があります。 –
何がクラッシュするのか分かりません...(クラッシュのスタックトレースのような)詳細を取得して質問に追加できる場合は、役立つかもしれません。 –
@ Frank van Puffelen私は頭字語を今更新するつもりです。私は一意のユーザーIDを略してuuidを使用しました。 –