Googleのクラウド関数をパラメータに


the previous blog postで、FirebaseなしでGoogle Cloud機能を呼ぶ方法について説明します.しかし、唯一のオプションは、関数を呼び出すことでした.ほとんどの場合、より複雑な機能が必要です.このブログ記事は、Googleクラウド機能に情報を渡す方法について説明します.これは複数の方法で行うことができます.

Googleクラウド機能の作成


まず、Googleクラウド機能を更新しましょう.この関数は変数を処理します.これらの変数を2つの簡単な方法があります.値は、クエリパラメータまたはHTTP呼び出しの本体を通過できます.もちろん、HTTP呼び出しの本体を通して情報を渡すとき、呼び出しはget callの代わりにポスト呼び出しになるべきです.
    // Check URL parameters for "name" field
    // "world" is the default value
    String name = request.getFirstQueryParameter("name").orElse("world");
GetFirstQueryParameterを使用して、要求のクエリパラメーターを取得できます.本文を読むには、リクエストの作家を得る必要があります.これを解析する1つの方法は、Google GSONライブラリを使用することです.同じ方法で計画している場合は、次の依存関係を追加する必要があります.
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.8.8</version>
    </dependency>
さて、リクエストの本文を解析し、そこに変数をアクセスできます.
package com.example;

import com.google.cloud.functions.HttpFunction;
import com.google.cloud.functions.HttpRequest;
import com.google.cloud.functions.HttpResponse;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.logging.Logger;

public class Example implements HttpFunction {
  private static final Logger logger = Logger.getLogger(Example.class.getName());

  private static final Gson gson = new Gson();

  @Override
  public void service(HttpRequest request, HttpResponse response)
      throws IOException {
    String name = request.getFirstQueryParameter("name").orElse("world");

    try {
      JsonElement requestParsed = gson.fromJson(request.getReader(), JsonElement.class);
      JsonObject requestJson = null;

      if (requestParsed != null && requestParsed.isJsonObject()) {
        requestJson = requestParsed.getAsJsonObject();
      }

      if (requestJson != null && requestJson.has("name")) {
        name = requestJson.get("name").getAsString();
      }
    } catch (JsonParseException e) {
      logger.severe("Error parsing JSON: " + e.getMessage());
    }

    var writer = new PrintWriter(response.getWriter());
    writer.printf("Hello %s!", name);
  }
}
Googleクラウドプラットフォームでこの機能を展開する完全な記述が必要なら、ここでの指示に従ってください.

フラッタアプリケーションの更新


この説明は、previous blog postのフラッターアプリケーションから始まる.ブログ記事は、HTTPパッケージでGoogle Cloud機能を呼ぶ方法を説明します.アプリケーションは、将来的に動作しますしたがって、結果はHTTP呼び出しが行われたときのみ表示されます.HTTPの呼び出しです.
import 'package:http/http.dart' as http;

Future<String> callCloudFunction() async {
  final response = await http
      .get(Uri.parse('insert-url-of-your-cloud-fuction'));
  if (response.statusCode == 200) {
    return response.body;
  } else {
    throw Exception('Failed to execute function');
  }
}
クエリパラメータで関数を呼び出すには、これらの変数をGETリクエストURLに追加できます.
import 'package:http/http.dart' as http;

Future<String> callCloudFunction() async {
  final response = await http
      .get(Uri.parse('insert-url-of-your-cloud-fuction?name=Bart'));
  if (response.statusCode == 200) {
    return response.body;
  } else {
    throw Exception('Failed to execute function');
  }
}
Google Cloud機能もリクエストの本文を見ます.HTTPコールで本体を含めるには、GetメソッドをPostメソッドに変換する必要があります.さて、次のように関数を期待することができます.
import 'dart:convert';
import 'package:http/http.dart' as http;

Future<String> callCloudFunction() async {
  final response = await http.post(Uri.parse('insert your url here'),
      body: jsonEncode(<String, String>{
        'name': 'Bart',
      }));
  if (response.statusCode == 200) {
    return response.body;
  } else {
    throw Exception('Failed to execute function');
  }
}
これらのステップは、変数を使用して雲関数を呼び出すために必要なすべてです!この例のコードはGithubにあります.まだ質問、コメント、提案、または発言がある場合は、私に知らせてください!
Flutter – Using Google Cloud Functions with parameters年には、Barttjeが初めて登場した.