blog.bouzuya.net

2026-01-17 bouzuya/serde-firestore-value の定例バージョンアップ

bouzuya/serde-firestore-value の定例のバージョンアップしようと思った。思ったのだけど、できなかった。

理由は crates:googleapis-tonic-google-firestore-v1 が 0.29.0 で非互換かつ大きい変更が入っているから。

ValueType の variant に 3 つ追加されている。

/// Value which references a field.
///
/// This is considered relative (vs absolute) since it only refers to a field
/// and not a field within a particular document.
///
/// **Requires:**
///
/// * Must follow \[field reference\]\[FieldReference.field_path\] limitations.
///
/// * Not allowed to be used when writing documents.
#[prost(string, tag = "19")]
FieldReferenceValue(::prost::alloc::string::String),
/// A value that represents an unevaluated expression.
///
/// **Requires:**
///
/// * Not allowed to be used when writing documents.
#[prost(message, tag = "20")]
FunctionValue(super::Function),
/// A value that represents an unevaluated pipeline.
///
/// **Requires:**
///
/// * Not allowed to be used when writing documents.
#[prost(message, tag = "21")]
PipelineValue(super::Pipeline),

v1 どころか v1beta1 のドキュメントにもないので、対応を様子見しようかと思っている。

https://firebase.google.com/docs/firestore/reference/rpc/google.firestore.v1#value https://firebase.google.com/docs/firestore/reference/rpc/google.firestore.v1beta1#value

とりあえず 0.28 までは互換性があるので、そこまでのバージョンアップにして逃げることに。


bouzuya/tsukota-web は FirestoreClient のテストを追加した。本当は永続化の実装まで進めるつもりだったけど、 docker compose の service に Firebase Emulator の設定も追加できたし、良しとする。


今日のコミット。