#php エディタ Zimo は、この記事で、protojson 形式の Firestore クラウド イベントをマップ[インターフェース{}] または構造にアンマーシャリングする方法を紹介します。 Firestore は Google Cloud が提供する柔軟なドキュメント データベース ソリューションであり、protojson はプロトコル バッファー データを JSON 形式に変換するツールです。 Firestore クラウド イベントをアンマーシャリングする方法を理解することは、Firestore Database を使用する開発者にとって重要なスキルです。この記事では、開発者が Firestore Database の機能をより効果的に活用できるように、アンマーシャリングの手順と注意事項について詳しく説明します。
すべての protobuf データ型タグを使用せずに、protojson 形式の Firestore データを map[string]interface{} または struct にアンマーシャリングする簡単な方法はありますか?つまり、protojson データを平坦化します。
新しい Firebase ドキュメントが作成されるたびに起動される Google Cloud 関数があります (「クラウド イベント」)。このクラウド イベントには、protojson 形式で変更されたドキュメントを含むコンテキスト情報が含まれています:
リーリー リーリーこの protojson ドキュメントのチャンクをカスタム go 構造にマーシャリングして、各タイプのエントリを簡単に検証したいと考えています。
リーリーFirestore SDK には、protojson 形式のデータをカスタム構造に簡単にアンマーシャリングできる datato メソッドが含まれています。私は非常に似たことをしようとしていますが、すでにFirestore SDKの外部でドキュメントデータを取得しています。
リーリーimport ( "google.golang.org/protobuf/encoding/protojson" "github.com/davecgh/go-spew/spew" ) func cloudfunction(ctx context.context, e event.event) error { data := firestoredata.documenteventdata{} _ = protojson.unmarshal(e.dataencoded, &data); spew.dump(data) }
私は、この課題を解決するために、「firestruct」というオープンソースの Go パッケージを作成しました。ここで見つけることができます: github.com/bennovw/firestruct フィードバックや貢献は大歓迎です。
結局、Firestore フィールドを一致するマップに再帰的に解凍する関数を作成することになりました。次に、cloud.google.com/go/firestore の DataTo() メソッドをリファクタリングして、マップを構造体にアンマーシャリングしました。
以上がprotojson 形式の Firestore クラウド イベントをマップインターフェースまたは構造体にアンマーシャルします。{}の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。