ホームページ  >  記事  >  ウェブフロントエンド  >  Firestore の配列フィールド内の単一アイテムを更新するにはどうすればよいですか?

Firestore の配列フィールド内の単一アイテムを更新するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-19 07:46:02854ブラウズ

How Can I Update a Single Item in an Array Field in Firestore?

Firestore の配列フィールドの単一アイテムを更新する

Firestore ドキュメントに items という配列フィールドがあり、次のことを行いたいとします。配列内のいずれかのオブジェクト内のフィールドを更新します。

Initial Attempt

最初の試行では次のコードが使用されました:

const key = `items.${this.state.index}.meta.description`
const property = `hello bar`;

this.design.update({
  [key]: property
})
...

ただし、これにより、指定された配列インデックスにあるオブジェクト全体が削除され、説明フィールドのみが残りました。

変更された試行

変更された試行では次のものが使用されましたコード:

const key = `items.${this.state.index}.meta`
const property = e.target.value;
let meta = this.state.meta;
meta[e.target.id] = property;

this.design.update({
  [key]: meta
})
...

これにより、項目配列がオブジェクトに変換され、配列構造が失われているようです。

Firestore の制限

Firestore には制限があります。配列フィールドを更新しています。要素の追加または削除のみが可能であり、既存の要素の変更はできません。

解決策

配列フィールド内の項目を変更するには、配列全体を読み取る必要があります。メモリ内で必要な変更を加えてから、変更された配列フィールド全体を更新します。

const items = this.design.get("items"); // Read the array field
items[this.state.index].meta.description = "hello bar"; // Modify the item
this.design.update({
  items: items // Update the entire modified array
})
...

このアプローチを使用すると、配列内の特定の項目を更新できます。配列構造を失うことなくフィールドを削除します。

以上がFirestore の配列フィールド内の単一アイテムを更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。