Мне было интересно, как я должен сохранить токен APN в базе данных реального времени firebase для использования при отправке уведомлений из облачных функций.
Я попытался сделать это в appdelegate
здесь:
// This function is added here only for debugging purposes, and can be removed if swizzling is enabled.
// If swizzling is disabled then this function must be implemented so that the APNs token can be paired to
// the FCM registration token.
func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
print("APNs token retrieved: \(deviceToken)")
let ref = Database.database().reference()
ref.child("APNRegistrationToken").child((Auth.auth().currentUser?.uid)!).child("token").setValue(deviceToken)//Save the users token for use when reciving notification
// With swizzling disabled you must set the APNs token here.
// Messaging.messaging().apnsToken = deviceToken
}
}
Это приводит к ошибке (учитывая, что в некоторых случаях пользователь еще не зарегистрировался, и по этой причине отсутствует currentUser.uid (как правило, я не думаю, что у меня есть доступ к uid, даже когда пользователь зарегистрировался)., в приложении делегат))
Как и где мне сохранить токен APN?