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

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

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

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

Q&A

解決済

1回答

292閲覧

Firebaseに詳しい方

退会済みユーザー

退会済みユーザー

総合スコア0

Swift

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

0グッド

0クリップ

投稿2020/03/09 06:59

Firebaseにて、アカウントを作りたいのですが、以下のようなエラーが出てきました。

2020-03-09 15:45:20.802697+0900 TwitterClone[2255:56914] - <AppMeasurement>[I-ACS036002] Analytics screen reporting is enabled. Call +[FIRAnalytics setScreenName:setScreenClass:] to set the screen name or override the default screen class name. To disable screen reporting, set the flag FirebaseScreenReportingEnabled to NO (boolean) in the Info.plist
2020-03-09 15:45:21.065080+0900 TwitterClone[2255:56713] [Storyboard] Unknown class _TtC12TwitterClone14ViewController in Interface Builder file.
2020-03-09 15:45:21.183130+0900 TwitterClone[2255:56914] 6.15.0 - [Firebase/Analytics][I-ACS023007] Analytics v.60201000 started
2020-03-09 15:45:21.184481+0900 TwitterClone[2255:56914] 6.15.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see http://goo.gl/RfcP7r)
2020-03-09 15:45:22.057951+0900 TwitterClone[2255:56713] Unbalanced calls to begin/end appearance transitions for <TwitterClone.MainTabController: 0x7fb129831a00>.
2020-03-09 15:45:22.104810+0900 TwitterClone[2255:56916] 6.15.0 - [Firebase/Analytics][I-ACS023012] Analytics collection enabled
2020-03-09 15:45:49.308906+0900 TwitterClone[2255:56908] [AutoFill] Cannot show Automatic Strong Passwords for app bundleID: com.gmail.wara56530.TwitterClone due to error: iCloud Keychain is disabled

おそらく、原因はUnbalanced~ のところで調べたらアカウント作成のコントローラーとメインタブの遷移のしかたが悪いらしいです。
それとauthenticateUserAndConfigureUI()のところのDispatchQueの構文の意味がよく分からないです。DispatchQueを書いた後に、いきなりアカウントを作れなくなってしまい、この後どうしたら良いか分からないので、どなたかご教授お願いします。

// // MainTabController.swift // TwitterClone // // Created by Newton on 2020/02/28. // Copyright © 2020 Newton. All rights reserved. // import UIKit import Firebase enum ActionButtonConfiguration { case tweet case message } class MainTabController: UITabBarController { // MARK: - Properties private var buttonConfig: ActionButtonConfiguration = .tweet var user: User? { didSet { guard let nav = viewControllers?[0] as? UINavigationController else { return } } } let actionButton: UIButton = { let button = UIButton(type: .system) button.tintColor = .white button.backgroundColor = .twitterBlue button.setImage(UIImage(named: "baseline_playlist_add_white_36pt_1x"), for: .normal) button.addTarget(self, action: #selector(actionButtonTapped), for: .touchUpInside) return button }() // MARK: - Lifecycle override func viewDidLoad() { super.viewDidLoad() // logUserOut() view.backgroundColor = .twitterBlue authenticateUserAndConfigureUI() } // MARK: - API func fetchUser() { guard let uid = Auth.auth().currentUser?.uid else { return } // UserService.shared.fetchUser(uid: uid) { user in // self.user = user // } } func authenticateUserAndConfigureUI() { // 原因? if Auth.auth().currentUser == nil { DispatchQueue.main.async { let nav = UINavigationController(rootViewController: LoginController()) nav.modalPresentationStyle = .fullScreen self.present(nav, animated: true, completion: nil) } } else { configureViewController() configureUI() fetchUser() } } func logUserOut() { do { try Auth.auth().signOut() } catch let error { print("User is logged in...") } } // MARK: - Selector @objc func actionButtonTapped() { print(123) } // MARK: - Helpers func configureUI() { view.addSubview(actionButton) actionButton.anchor(bottom: view.safeAreaLayoutGuide.bottomAnchor, right: view.rightAnchor, paddingBottom: 64, paddingRight: 16, width: 56, height: 56) actionButton.layer.cornerRadius = 56 / 2 } func configureViewController() { let feed = FeedContoroller() let nav1 = templateNavigationController(image: UIImage(named: "home_unselected"), rootViewController: feed) let explore = ExploreContoroller() let nav2 = templateNavigationController(image: UIImage(named: "search_unselected"), rootViewController: explore) let notification = NotificationContoroller() let nav3 = templateNavigationController(image: UIImage(named: "like_unselected"), rootViewController: notification) let conversation = ConversationContoroller() let nav4 = templateNavigationController(image: UIImage(named: "ic_mail_outline_white_2x"), rootViewController: conversation) viewControllers = [nav1, nav2, nav3, nav4] } func templateNavigationController(image: UIImage?, rootViewController: UIViewController) -> UINavigationController { let nav = UINavigationController(rootViewController: rootViewController) nav.tabBarItem.image = image nav.navigationBar.barTintColor = .white return nav } } extension MainTabController: UITabBarControllerDelegate { func tabBarController(_ tabBarController: UITabBarController, didSelect viewController: UIViewController) { let index = viewControllers?.firstIndex(of: viewController) let image = index == 3 ? #imageLiteral(resourceName: "mail") : #imageLiteral(resourceName: "new_tweet") actionButton.setImage(image, for: .normal) buttonConfig = index == 3 ? .message : .tweet } }

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

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

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

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

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

guest

回答1

0

ベストアンサー

エラー文が何を伝えているのかは分かりませんが、上記のソースコードのみを見る限り、そもそもFirebaseでアカウントを作れていないように見えます。

Firebaseを使ってアカウントを作成する場合は以下のコードを使用します。
ドキュメントはこちら

例えば、メールアドレスとパスワードでアカウントを作成する場合は
Auth.auth().createUser(withEmail~~~~~~)と言うメソッドを使います。

僕も初心者なので間違っていたらごめんなさい。

投稿2020/03/09 07:42

Naoki_Pro

総合スコア23

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問