| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
==サンプル==
*https://firebase.google.com/docs/functions/get-started?hl=ja
メッセージをFirestoreに保存する ===HTTP エンドポイント===*HTTPエンドポイントに対するリクエストを行うと、[https://ja.wikipedia.org/wiki/Express.js Express.JS] スタイルの Request オブジェクトと Response オブジェクトが onRequest() コールバックに渡されます。*呼び出し可能な関数と同様に HTTP 関数は同期的。*できるだけ早くレスポンスを送信し、Cloud Firestore による作業を遅らせる必要があります。addMessage() HTTP 関数は、テキスト値を HTTP エンドポイントに渡し、/messages/:documentId/original パスの下でデータベースに挿入する。 *[https://www.typea.info/blog/index.php/2021/11/06/cloudfunctions_firestore_ref/ CloudFunctions から Firestoreに接続する] 
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
$ firebase deploy --only functions
*Firebase コンソールに登録された
[[File:cloud_functions_sample3.png|600px]]
*呼び出してみる
[[File:cloud_functions_sample2cloud_functions_sample1.png|600px]]
*Firestoreに登録された
[[File:cloud_functions_sample2.png|600px]] ===関数トリガー===*Cloud Firestore に書き込まれるときに実行される*ref.set 関数ではリッスン対象のドキュメントを定義。パフォーマンス上の理由から、可能な限り具体的にする必要があります。**中かっこ({documentId} など)は、パラメータを囲みます。これは、コールバックで一致したデータを公開するワイルドカードです。*Cloud Firestore は、指定されたドキュメント上でデータの書き込みまたは更新が行われるたびに、onWrite() コールバックをトリガー。 <q>注意: たとえば、特定の Cloud Firestore ドキュメントへの書き込みによってトリガーされ、その同じパスに書き込むことによって終了する関数は無限ループになります。1つのイベントに対して複数回実行しても同じ結果が得られるよう、関数は必ずべき等方式で記述してください。Cloud Firestore イベントなどのイベント ドリブンの関数は非同期です。コールバック関数は、null、オブジェクト、Promise のいずれかを返す必要があります。何も返さない場合、関数はタイムアウトし、エラーを通知し、再試行されます。</q>  export const makeUpperCase = functions.firestore.document(`/message/{documentId}`).onCreate( (snap, context) => { const original = snap.data()?.original; const uppercase = original.toUpperCase(); return snap.ref.set({uppercase}, {merge: true}); } );[[File:cloud_functions_trigger_sampl1.png|600px]]==Tips=====環境構築===*[https://www.typea.info/blog/index.php/2020/03/17/google-cloud-functinos/ 試す]*[https://www.typea.info/blog/index.php/2020/03/22/cloud_functions_for_firebase_dev_env/ 環境構築]*[https://www.typea.info/blog/index.php/2020/03/29/cloud-functions-firestore-bind/ Firestore連携]===ファイルアップロード===*[https://www.typea.info/blog/index.php/2020/08/02/firebase-cli-google-cloud-functions/ ファイルアップロード]===Cloud Vision===*[https://www.typea.info/blog/index.php/2020/08/09/google-cloud-function-vision-api-ocr/ Cloud Vision API]===アプリから呼び出す===*[https://www.typea.info/blog/index.php/2020/08/11/angular-cloud-functions/ アプリから呼び出す]*[https://www.typea.info/blog/index.php/2020/08/11/angular-cloud-functions-ocr/ Angular から Base64エンコードした画像ファイルを Cloud Functions にアップロードして Cloud Vision API でOCR]

案内メニュー