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

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

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

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

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

解決済

Firestoreのデータの取得で'self' used in property access 'model' before all stored properties are initialized

avocadoningen
avocadoningen

総合スコア12

Firebase

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

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

2回答

0リアクション

0クリップ

168閲覧

投稿2022/09/04 02:51

前提

XcodeでFirestoreのデータを取得しようとしています。
ですが、実行するとLocationsViewModel.swiftのlet locations = model.storesに
'self' used in property access 'model' before all stored properties are initialized
とエラーが現れます。
プロジェクトとFirebaseは連携できていることは確認できています。
回答していただけると大変ありがたいです。
どうぞ、よろしくお願いいたします。

実現したいこと

エラーを解決し、Firestoreのデータをアプリに反映させる。

発生している問題・エラーメッセージ

LocationsViewModel.swift1行目のlet locations = model.stores

'self' used in property access 'model' before all stored properties are initialized

該当のソースコード

LocationsViewModel.swift

class LocationsViewModel: ObservableObject { @ObservedObject var model = FirebaseViewModel() init() { let locations = model.stores self.locations = locations self.mapLocation = locations.first! self.updateMapRegion(location: locations.first!) } }

Firestoreからデータを取得するコード

FirebaseViewModel.swift

import SwiftUI import FirebaseFirestore import MapKit class FirebaseViewModel: ObservableObject { @Published var stores = [Location]() init() { self.stores = stores getData() } func getData() { let db = Firestore.firestore() db.collection("stores").getDocuments { snapshot, error in if error == nil { // No errors if let snapshot = snapshot { DispatchQueue.main.async { self.stores = snapshot.documents.map { d in return Location(name: d["name"] as? String ?? "", category: d["category"] as? String ?? "", link: d["url"] as? String ?? "", description: d["description"] as? String ?? "", coordinates: d["coordinates"] as! GeoPoint, id: d.documentID) } } } } else { } } } }
### 補足情報(FW/ツールのバージョンなど) macOS バージョン12.4 1.1GHz 4コアIntel Core i5 Xcodeバージョン13.4.1

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

まだ回答がついていません

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

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

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Firebase

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

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。