質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

1968閲覧

iOS端末でPush通知用に登録トークンを取得したい

sszkks

総合スコア15

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2021/04/05 12:27

編集2021/04/05 23:23

やりたいこと

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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tomato879241

2021/04/05 13:20

1. 何々が発生している、と言っても、どこでそれが発生しているかを説明しなければ、話になりません。 2. あなたのAppDelegateには12行ぐらいのコードしか書かれていないのですか?違うのであれば、どうしてAppDelegateに書かれているコードを全てここで見せないんですか?
tomato879241

2021/04/05 13:23

自分にも「Database」が何なのかわかりません。それもしかするとそれ、Firebase Databaseのお方ですか?もしそうだとするとFirebase Cloud MessagingとFirebase Databaseがどう繋がっているのでしょうか?
hoshi-takanori

2021/04/05 18:28

Firebase のライブラリはどうやって追加しましたか?
guest

回答1

0

Auth や Database (Firebase Realtime Database) を使いたいのであれば Podfile に以下の記述を追加する必要があります。
参考: Firebase を iOS プロジェクトに追加する

pod 'Firebase/Auth' pod 'Firebase/Database'

(個人的には Realtime Database よりも Firestore の方が…。)
参考: Firebase Realtime DatabaseとFirestoreを使い分けていこうなという話 - KAYAC engineers' blog

投稿2021/04/05 23:44

hoshi-takanori

総合スコア7895

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問