我试图将Firebase云消息集成到我的应用程序中,以便向用户发送通知。当试图启动应用程序,我得到以下错误:
*** First throw call stack:
(0x1e024927c 0x1df4239f8 0x1e01534b0 0x102a31268 0x102995540 0x1029956f8 0x20cb84088 0x20cb83944 0x102995878 0x1dfc9a8e0)
libc++abi.dylib: terminating with uncaught exception of type NSException
这在这里发生:
[NSException raise:NSInternalInconsistencyException
在FIRAuthm.
[NSException raise:NSInternalInconsistencyException
format:@"The default FIRApp instance must be configured before the default FIRAuth"
@"instance can be initialized. One way to ensure that is to call "
@"`[FIRApp configure];` (`FirebaseApp.configure()` in Swift) in the App "
@"Delegate's `application:didFinishLaunchingWithOptions:` "
@"(`application(_:didFinishLaunchingWithOptions:)` in Swift)."];
这是我的大多数应用委托的样子:
let currentUser = Auth.auth().currentUser!.uid
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
FirebaseApp.configure()
Messaging.messaging().delegate = self as! MessagingDelegate
// InstanceID.instanceID().instanceID { (result, error) in
// if let error = error {
// print("Error fetching remote instange ID: \(error)")
// } else if let result = result {
// print("Remote instance ID token: \(result.token)")
// let ref = Database.database().reference()
// ref.child("UsersFireTokens").child(self.currentUser).child("token").setValue(result.token)
// }
// }
return true
}
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil) -> Bool {
if #available(iOS 10.0, *) {//for notif's
// For iOS 10 display notification (sent via APNS)
UNUserNotificationCenter.current().delegate = self as! UNUserNotificationCenterDelegate
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
options: authOptions,
completionHandler: {_, _ in })
} else {
let settings: UIUserNotificationSettings =
UIUserNotificationSettings(types: [.alert, .badge, .sound], categories: nil)
application.registerUserNotificationSettings(settings)
}
application.registerForRemoteNotifications()
return true
}
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
Messaging.messaging().apnsToken = deviceToken
InstanceID.instanceID().instanceID { (result, error) in
if error == nil {
print("InstanceID token: \(result)")
// let ref = Database.database().reference()
// ref.child("UsersFireTokens").child(self.currentUser).child("token").setValue(result!)
} else {
print(error, ": Error in getting token for Fire")
}
}
// if let refreshedToken = InstanceID.instanceID().token() {
// print("InstanceID token: \(refreshedToken)")
// }
}
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
print("Firebase registration token: \(fcmToken)")
let dataDict:[String: String] = ["token": fcmToken]
NotificationCenter.default.post(name: Notification.Name("FCMToken"), object: nil, userInfo: dataDict)
// TODO: If necessary send token to application server.
let ref = Database.database().reference()
ref.child("UsersFireTokens").child(self.currentUser).child("token").setValue(dataDict["token"]!)
// Note: This callback is fired at each app startup and whenever a new token is generated.
}
// MARK: - MessagingDelegate
func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) {
print(fcmToken, ": fcmToken")
let ref = Database.database().reference()
ref.child("UsersFireTokens").child(self.currentUser).child("token").setValue(fcmToken)
}
发生了什么,我如何修复这个错误?
我试着按照这里的指示去做。。。
你不能用这条线
let currentUser = Auth.auth().currentUser!.uid
函数外部-在调用didfishLaunching
之前初始化应用程序委托时将调用该函数-这意味着调用FireBaseApp.configure()
之前将初始化Auth.Auth()。
我建议:
var currentUser: String?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
FirebaseApp.configure()
Messaging.messaging().delegate = self as! MessagingDelegate
self.currentUser = Auth.auth().currentUser?.uid
return true
}
我正在开发Android/iOS应用程序使用离子框架(网络技术),我想添加推通知与新的firebase功能FCM的帮助。 null 这是否意味着我可以在Android/iOS的ionic应用程序中使用它,因为应用程序是使用Cordova构建的?
我想使用谷歌的Firebase为网络构建一个消息应用程序。在这个应用程序中,用户应该向/从其他用户发送和接收消息。我检查了谷歌的Firebase网站,但我迷路了。你能告诉我从哪里开始吗?你能给我看任何与Firebase网络消息相关的教程或类似的东西吗?我欢迎任何建议。谢谢。
我必须在SpringJava中为多层架构制作一个RESTAPI,其中需要为Firebase云消息传递(FCM)构建DAO、控制器和服务管理器,以向android应用程序发送推送通知消息,但我无法在Java中配置服务器以向设备发送通知。我怎么能?
我试图让Android BroadcastReceiver在Android系统收到Firebase云消息通知时运行。 AndroidManifest中需要指定如下接收器标记: 正如您在上面的清单中看到的,我添加了: 确保当我将电缆插入Android设备时,BroadcastReceiver启动。它工作得很好。 因此,问题在于: BroadcastReceiver是否无法识别此意图筛选器操作?Bro
FCM服务未向我的iOS应用程序发送消息。 > App CAN成功接收APNs令牌和实例ID令牌 App CAN使用推送通知实用程序利用. p8令牌在后台成功接收来自APN的推送 #2中使用的相同APNs密钥上传到Firebase控制台 应用程序无法接收Firebase控制台中Notification Composer发送的消息,也无法使用CURL请求接收消息。 应用程序在通过FCM发送时不显示任
我正试图将FCM与SNS整合。我在这个答案中读到设置应该与GCM相同。我设法创建了一个FCM应用程序,可以向android设备发送消息。当应用程序在后台时,设备在托盘中接收通知,或当应用程序在前台时打印接收的消息。我正试图整合它现在到SNS,但我似乎不能使它工作,没有任何错误信息。