Googleのクラウド関数をパラメータに
13815 ワード
the previous blog postで、FirebaseなしでGoogle Cloud機能を呼ぶ方法について説明します.しかし、唯一のオプションは、関数を呼び出すことでした.ほとんどの場合、より複雑な機能が必要です.このブログ記事は、Googleクラウド機能に情報を渡す方法について説明します.これは複数の方法で行うことができます.
まず、Googleクラウド機能を更新しましょう.この関数は変数を処理します.これらの変数を2つの簡単な方法があります.値は、クエリパラメータまたはHTTP呼び出しの本体を通過できます.もちろん、HTTP呼び出しの本体を通して情報を渡すとき、呼び出しはget callの代わりにポスト呼び出しになるべきです.
この説明は、previous blog postのフラッターアプリケーションから始まる.ブログ記事は、HTTPパッケージでGoogle Cloud機能を呼ぶ方法を説明します.アプリケーションは、将来的に動作しますしたがって、結果はHTTP呼び出しが行われたときのみ表示されます.HTTPの呼び出しです.
Flutter – Using Google Cloud Functions with parameters年には、Barttjeが初めて登場した.
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が初めて登場した.
Reference
この問題について(Googleのクラウド関数をパラメータに), 我々は、より多くの情報をここで見つけました https://dev.to/bartvwezel/flutter-using-google-cloud-functions-with-parameters-18dテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol