前提・実現したいこと
前提
http://crossbridge-lab.hatenablog.com/entry/2016/06/02/085726
上記のページ「Firebase を使って30分でiOSのチャットアプリを作ってみる(新SDK対応版)」を参考に記事の通りにコードの記述などをしていきました。
実現したいこと
シミュレーターでチャットを送信する
発生している問題・エラーメッセージ
エラ〜メッセージではなく、エラーも出ていないのですが、シミュレーターを起動した際に、入力画面はきちんと表示されるのに、入力項目に入力したところ、「エンター」を押せば送信できるらしいのですが、エンターを押しても何も反応しません。
該当のソースコード
ViewController
1import UIKit 2import FirebaseCore 3import Firebase 4import FirebaseDatabase 5import FirebaseStorage 6 7class ViewController: UIViewController, UITextFieldDelegate { 8 9 @IBOutlet weak var textView: UITextView! 10 @IBOutlet weak var nameTextField: UITextField! 11 @IBOutlet weak var messageTextField: UITextField! 12 13 var ref:DatabaseReference! 14 var databaseRef:DatabaseReference! 15 16 override func viewDidLoad() { 17 super.viewDidLoad() 18 // Do any additional setup after loading the view. 19 20 databaseRef = Database.database().reference() 21 22 databaseRef.observe(.childAdded, with: { snapshot in 23 if let name = snapshot.value(forKey: "name") as? String, 24 let message = snapshot.value(forKey: "message") as? String { 25 self.textView.text = "(self.textView.text ?? "")\n(name) : (message)" 26 } 27 }) 28 29 } 30 31 32 33 func textFieldShouldReturn(_ textField: UITextField) -> Bool{ 34 35 let messageData = ["name": nameTextField.text!, "message": messageTextField.text!] 36 databaseRef.childByAutoId().setValue(messageData) 37 38 textField.resignFirstResponder() 39 messageTextField.text = "" 40 41 FirebaseApp.configure() 42 return true 43 } 44 45 46 47} 48 49 50 51
追記のソースコード
Appdelegate
1import UIKit 2import FirebaseCore 3import Firebase 4import FirebaseDatabase 5import FirebaseStorage 6 7 8 9@UIApplicationMain 10class AppDelegate: UIResponder, UIApplicationDelegate { 11 var window: UIWindow? 12 13 14 func application(_ application: UIApplication, 15 didFinishLaunchingWithOptions launchOptions: 16 [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 17 //ここから 18 return true 19 } 20 21 } 22 23 24 25 internal func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 26 // Override point for customization after application launch. 27 FirebaseApp.configure() //こちらに移動しました。 28 return true 29 30 } 31 32 // MARK: UISceneSession Lifecycle 33 34 func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { 35 // Called when a new scene session is being created. 36 // Use this method to select a configuration to create the new scene with. 37 return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) 38 } 39 40 func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set<UISceneSession>) { 41 // Called when the user discards a scene session. 42 // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. 43 // Use this method to release any resources that were specific to the discarded scenes, as they will not return. 44 }
試したこと
補足情報(FW/ツールのバージョンなど)
MacOS Catalina ver10.15.3
Swift version 5.1.3
Xcode Version 11.4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/04/23 23:56
2020/04/24 00:48
2020/04/24 01:24
2020/04/24 01:40
2020/04/24 02:03