やりたいこと
Firebase Cloud Messages(FCM)でpush通知を用いた機能を実装するために、
端末のトークン情報を取得したい。
参考サイト:https://tech.playground.style/swift/receive-notification/
教えていただきたいこと
後述するエラーの解消方法
発生しているエラー
下記のコードで
・Cannnot find Auth in Scope
・Cannnot find Database in Scope
が発生しています。
swift
1extension AppDelegate: MessagingDelegate { 2 func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) { 3 if let uid = Auth.auth().currentUser?.uid { 4 self.setFcmToken(userId: uid, fcmToken: fcmToken) 5 } 6 print("Firebase registration token: (fcmToken)") 7 } 8 9 func setFcmToken(userId: String, fcmToken: String) { 10 let reference = Database.database().reference().child("user").child(userId).child("fcm_token") 11 UserDefaults.standard.set(fcmToken, forKey: "fcmToken") 12 reference.setValue(fcmToken) 13 print("Firebase registration token: (fcmToken)") 14 } 15}
ライブラリの導入方法について
ライブラリはcocoapodsを用いて導入しました。
Podfile内の記載は下記の通りです。
# Uncomment the next line to define a global platform for your project # platform :ios, '9.0' target 'XX' do # Comment the next line if you don't want to use dynamic frameworks use_frameworks! # Pods for PushSample # add the Firebase pod for Google Analytics pod 'Firebase/Analytics' # add pods for any other desired Firebase products # https://firebase.google.com/docs/ios/setup#available-pods # Add the pod for Firebase Cloud Messaging pod 'Firebase/Messaging' target 'XXTests' do inherit! :search_paths # Pods for testing end target 'XXUITests' do # Pods for testing end end
調べたこと
importに不足がないか確認しましたが、参考サイトと同じように下記をimportしているため差分は見受けられませんでした。
swift
1import UIKit 2import Firebase