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

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

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

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

Xcode

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

Swift

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

Q&A

解決済

1回答

285閲覧

Thread 1: signal SIGABRTは改善されません

退会済みユーザー

退会済みユーザー

総合スコア0

Firebase

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

Xcode

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

Swift

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

0グッド

0クリップ

投稿2017/12/01 04:11

編集2017/12/01 05:57

イメージ説明
Swift 4
Xcode 9.1

インスタグラムのクローンを作っています。

(ストーリーボード上は下記2つの画面があります)
①Email,PasswordのフォームとLog in,Sign Upのボタンの画面。
②Sign Upボタンから遷移した先は、
Full Name,E mail,Passwordなどのテキストフィールドと
UIImage View,Select Picture,Nextのボタンがある画面。

Sign Upをクリックすると、遷移されずクラッシュし、Thread 1: signal SIGABRTと表示されました。

その後、FirebaseのAuthenticationに自分のユーザーを追加してビルドすると、Thread 1: signal SIGABRTは表示されなくなりました。
ですが、上画像の様にエラー?になりました。

そしてxcodeを再起動しビルドすると、またThread 1: signal SIGABRTとなりエラー。

(確認した点)
・triggered seguesの中では、使用しているラベルのみ結ばれている
・メインストーリーボード上でSignupViewController.swiftを右クリックした中に、
イエローフラッグは無し

(試した方法)
・SignupViewController.swift上のIBOutletとIBActionから始まるコードを
全て消して書き直し、再度ビルドしてもクラッシュしました。

お分かりになる方、どうぞご教授お願います。

// // SignupViewController.swift // instagram_001 // import UIKit import Firebase class SignupViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { @IBOutlet weak var nameField: UITextField! @IBOutlet weak var emailField: UITextField! @IBOutlet weak var password: UITextField! @IBOutlet weak var comPwField: UITextField! @IBOutlet weak var imageView: UIImageView! @IBOutlet weak var nextBtn: UIButton! let picker = UIImagePickerController() var userStorage: StorageReference! var ref: DatabaseReference! override func viewDidLoad() { super.viewDidLoad() picker.delegate = self let storage = Storage.storage().reference(forURL: "gs://instagram-f049d.appspot.com") ref = FirebaseDatabase.Database().reference() userStorage = storage.child("users") } @IBAction func selectimagePressed(_ sender: Any) { picker.allowsEditing = true picker.sourceType = .photoLibrary present(picker, animated: true, completion: nil) } func imagePickerController( _ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { if let image = info[UIImagePickerControllerEditedImage] as? UIImage { self.imageView.image = image nextBtn.isHidden = false } self.dismiss(animated: true, completion: nil) } @IBAction func nextPressed(_ sender: Any) { guard nameField.text != "", emailField.text != "", password.text != "", comPwField.text != "" else { return} if password.text == comPwField.text { Auth.auth().createUser(withEmail: emailField.text!, password: password.text!, completion: { (user,error) in if let error = error { print(error.localizedDescription) } if let user = user { let changeRequest = Auth.auth().currentUser!.createProfileChangeRequest() changeRequest.displayName = self.nameField.text! changeRequest.commitChanges(completion: nil) let imageRef = self.userStorage.child("(user.uid).jpg") let data = UIImageJPEGRepresentation(self.imageView.image!, 0.5) let uploadTask = imageRef.putData(data!, metadata: nil, completion: { (metadata, err) in if err != nil { print(err!.localizedDescription) } imageRef.downloadURL(completion: { (url, er) in if er != nil { print(er!.localizedDescription) } if let url = url { let userInfo: [String : Any] = ["uid" : user.uid, "full name" : self.nameField.text!, "urlToImage" : url.absoluteString] self.ref.child("users").child(user.uid).setValue(userInfo) let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "userVC") self.present(vc, animated: true, completion: nil) } } ) }) uploadTask.resume() } else { print("password does not match") } } )}} }

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

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

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

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

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

guest

回答1

0

ベストアンサー

別の方法を試してみます。
コメントありがとうございます。

投稿2017/12/01 13:35

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問