はじめに
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を別で作成して回避しましょう。
まとめ
なんだかんだこのエラーに悩まされたので備忘録として書きました。テストケースの生成には気をつけよう!