Firebase Remote Config トリガー
Cloud Run functions の関数は、その関数と同じ Google Cloud プロジェクトの Firebase Remote Config の変更に応じてトリガーできます。これにより、アプリ アップデートを公開せずに、アプリの動作や外観を変更できます。
イベントタイプ
Firebase Remote Config は、remoteconfig.update
イベントに応じて関数をトリガーできます。
イベントタイプ | トリガー |
---|---|
remoteconfig.update |
Remote Config テンプレートが更新されるとトリガーされます。 |
イベントの構造
イベントデータは、変換された remoteConfig
オブジェクトとして指定されます。
例:
{ "updateType": "FORCED_UPDATE", "updateOrigin": "CONSOLE", "versionNumber": 1 }
サンプルコード
Node.js
Python
Go
Java
C#
using CloudNative.CloudEvents; using Google.Cloud.Functions.Framework; using Google.Events.Protobuf.Firebase.RemoteConfig.V1; using Microsoft.Extensions.Logging; using System.Threading; using System.Threading.Tasks; namespace FirebaseRemoteConfig; public class Function : ICloudEventFunction<RemoteConfigEventData> { private readonly ILogger _logger; public Function(ILogger<Function> logger) => _logger = logger; public Task HandleAsync(CloudEvent cloudEvent, RemoteConfigEventData data, CancellationToken cancellationToken) { _logger.LogInformation("Update type: {origin}", data.UpdateType); _logger.LogInformation("Update origin: {origin}", data.UpdateOrigin); _logger.LogInformation("Version number: {version}", data.VersionNumber); // In this example, we don't need to perform any asynchronous operations, so the // method doesn't need to be declared async. return Task.CompletedTask; } }
Ruby
PHP
use Google\CloudFunctions\CloudEvent; function firebaseRemoteConfig(CloudEvent $cloudevent) { $log = fopen(getenv('LOGGER_OUTPUT') ?: 'php://stderr', 'wb'); $data = $cloudevent->getData(); fwrite($log, 'Update type: ' . $data['updateType'] . PHP_EOL); fwrite($log, 'Origin: ' . $data['updateOrigin'] . PHP_EOL); fwrite($log, 'Version: ' . $data['versionNumber'] . PHP_EOL); }
関数のデプロイ
関数をデプロイするには、イベントタイプ google.firebase.remoteconfig.update
を指定する必要があります。
次の gcloud
コマンドは、Firebase Remote Config イベントによってトリガーされる関数をデプロイします。
gcloud functions deploy FUNCTION_NAME \ --no-gen2 \ --entry-point ENTRY_POINT \ --trigger-event google.firebase.remoteconfig.update \ --runtime RUNTIME
引数 | 説明 |
---|---|
FUNCTION_NAME |
デプロイする Cloud Run 関数の登録名。ソースコード内の関数の名前にすることも、任意の文字列にすることもできます。FUNCTION_NAME が任意の文字列の場合は、--entry-point フラグを含める必要があります。 |
--entry-point ENTRY_POINT |
ソースコード内の関数またはクラスの名前。FUNCTION_NAME を使用して、デプロイ時に実行する関数をソースコードに指定していない場合は省略できます。それ以外の場合は、--entry-point を使用して実行可能関数の名前を指定する必要があります。 |
--trigger-event google.firebase.remoteconfig.update |
Firebase Remote Config の更新イベントで関数をトリガーします。 |
--runtime RUNTIME |
使用しているランタイムの名前。網羅的なリストについては、gcloud リファレンスをご覧ください。 |