0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

えーえすAdvent Calendar 2024

Day 10

FirestoreのCodableでdocumentIDをいじるとエラーが出る

Last updated at Posted at 2024-12-09

はじめに

Firestoreで以下のようなstructを作っているとします。

struct User: Identifiable, Codable, Equatable {
    @DocumentID var id: String?
    var name: String
    var email: String
}

そのときにこんなエラーが出てきます…

Attempting to initialize or set a @DocumentID property with a non-nil value: "D87EAD42-7B52-4510-929D-2414B9DB4E66". The document ID is managed by Firestore and any initialized or set value will be ignored. The ID is automatically set when reading from Firestore.

@DocumentIDに値を設定するな、ということらしいです。

修正方法

おそらくどこかに、このようなコードがあります。

let user = User(id: UUID().uuidString, name: "name", email: "email")

要するに、@DocumentIDに他の値を代入するな!ということらしいです。

そうなると テスト用のダミーデータの作成 などが大変ですが、それはテスト用の構造とstructを別で作成して回避しましょう。

まとめ

なんだかんだこのエラーに悩まされたので備忘録として書きました。テストケースの生成には気をつけよう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?