Acionadores do Firebase Remote Config
As funções do Cloud Run podem ser acionadas em resposta a alterações na Firebase Remote Config no mesmo Google Cloud projeto que a função. Isto permite alterar o comportamento e o aspeto da sua app sem publicar uma atualização da app.
Tipos de eventos
O Firebase Remote Config pode acionar funções em resposta ao evento
remoteconfig.update
.
Tipo de evento | Acionador |
---|---|
remoteconfig.update |
Acionado quando o modelo de configuração remota é atualizado. |
Estrutura de eventos
Os dados de eventos são fornecidos como um remoteConfig
objeto transformado.
Por exemplo:
{ "updateType": "FORCED_UPDATE", "updateOrigin": "CONSOLE", "versionNumber": 1 }
Exemplo de código
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); }
Implementar a sua função
Para implementar a sua função, tem de especificar o tipo de evento
google.firebase.remoteconfig.update
.
O seguinte comando gcloud
implementa uma função acionada por um evento do Firebase Remote Config:
gcloud functions deploy FUNCTION_NAME \ --no-gen2 \ --entry-point ENTRY_POINT \ --trigger-event google.firebase.remoteconfig.update \ --runtime RUNTIME
Argumento | Descrição |
---|---|
FUNCTION_NAME |
O nome registado da função do Cloud Run que está a implementar.
Pode ser o nome de uma função no seu código-fonte ou uma string arbitrária. Se FUNCTION_NAME for uma string arbitrária, tem de incluir a flag --entry-point .
|
--entry-point ENTRY_POINT |
O nome de uma função ou classe no seu código-fonte. Opcional, a menos que não tenha usado FUNCTION_NAME
para especificar a função no código fonte a ser executada durante a implementação. Nesse caso, tem de usar --entry-point para indicar o nome da função executável.
|
--trigger-event google.firebase.remoteconfig.update |
Acionar a função em eventos de atualização do Firebase Remote Config. |
--runtime RUNTIME |
O nome do tempo de execução que está a usar. Para ver uma lista completa, consulte a
gcloud referência.
|