我正在製作一個登錄應用程序,用於跟蹤某人是否已登錄。我正在使用Firebase作爲執行此操作的一種方式。如果一個人是不是在火力,它們不能登錄。firebase,swift,ios - 無法獲取默認令牌Error Domain = com.firebase.iid Code = 6「(null)」
問題
我不斷收到控制檯錯誤
< FIRInstanceID /警告>無法抓取默認令牌錯誤域= com.firebase.iid Code = 6「(null)」
當我模擬應用程序。當我嘗試以Ash Dreyer
的身份登錄時,它不會登錄我。即使我已在Firebase中登錄,我也會多次單擊它,它應該將我註銷並重新登錄。
火力
{
"Ash Dreyer" : {
"activity" : "None",
"current_status" : "IN",
"num_of_logins" : 0,
"total_hours" : 0,
"type" : "mentor"
},
"Bryton Moeller" : {
"activity" : "None",
"current_status" : "OUT",
"num_of_logins" : 0,
"total_hours" : 0,
"type" : "student"
}
}
APP DELEGATE
import UIKit
import Firebase
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
override init() {
FIRApp.configure()
}
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
FIRApp.configure()
return true
}
}
LOGINVIEWCONTROLLER
import Firebase
import UIKit
class LoginViewController: UIViewController {
@IBOutlet weak var activity_label: UILabel!
@IBOutlet weak var activity_picker: UIPickerView!
@IBOutlet weak var name_field: UITextField!
@IBOutlet weak var login_button: UIButton!
@IBOutlet weak var location_switch: UISwitch!
var root_ref = FIRDatabase.database().reference()
// Color scheme
let grey = UIColor(red: 0.933, green: 0.929, blue: 0.922, alpha: 1.0)
let dark_orange = UIColor(red: 0.769, green: 0.396, blue: 0.176, alpha: 1.0)
let dark_blue = UIColor(red: 0.188, green: 0.463, blue: 0.541, alpha: 1.0)
let light_blue = UIColor(red: 0.412, green: 0.663, blue: 0.686, alpha: 1.0)
let light_orange = UIColor(red: 0.871, green: 0.612, blue: 0.451, alpha: 1.0)
var user: Person!
func update_UI() {
if let _ = user {
if user!.current_status == "IN" {
login_button.setTitleColor(dark_blue, for: UIControlState.normal)
login_button.setTitle("LOG OUT", for: UIControlState.normal)
} else {
login_button.setTitleColor(dark_orange, for: UIControlState.normal)
login_button.setTitle("LOG IN", for: UIControlState.normal)
}
}
}
func login(member: inout Person) {
if member.current_status == "IN" {
member.current_status = "OUT"
} else {
member.current_status = "IN"
}
root_ref.child(byAppendingPath: member.key).updateChildValues(["current_status": member.current_status]);
update_UI()
}
func login_new_user(member_name: String) {
root_ref.observe(FIRDataEventType.value, with: { (snapshot) -> Void in
for member in snapshot.children {
if member.key == member_name {
self.user = Person(snapshot: member as! FIRDataSnapshot)
}
}
})
if let _ = user {
login(member: &user!)
}
}
@IBAction func login_user(_ sender: UIButton) {
if let _ = user, let name_text = name_field.text, name_text != "" {
if user.key != name_text {
login_new_user(member_name: name_text)
}
} else if let name_text = name_field.text, name_text != "" {
login_new_user(member_name: name_text)
} else if let _ = user {
login(member: &user!)
} else {
print("Please enter text into the text field")
}
}
@IBAction func toggle_location(_ sender: UISwitch) {
}
@IBAction func other_login(_ sender: UIButton) {
}
}
注
- 當我剛
FIRApp.configure()
在func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
,它給了我一個SIGABRT錯誤。 - 這是一個我們正在跟蹤的小組,因此我決定使用名字而不是UID。
- 我使用火力3
SIGABRT錯誤與此有關。如果你沒有適當地配置你的應用程序,那麼我不會指望任何工作。您確定您完全按照https://firebase.google.com/docs/ios/setup? – PyPiePi