Flutter – Google Cloud 함수 호출

9621 단어 gcpserverlessflutter
클라우드 기능을 호출하는 대부분의 예는 Firebase를 사용하고 있습니다. Firebase를 사용하면 클라우드 기능을 쉽게 작성하고 유지 관리할 수 있습니다. 특히 Firebase가 제공하는 다른 기능을 사용하고 있다면 더욱 그렇습니다. 그러나 클라우드 기능을 작성하는 데 사용할 수 있는 언어에는 제한이 있습니다. Firebase를 사용하면 Javascript 또는 Typescript로만 함수를 작성할 수 있습니다. 다행스럽게도 클라우드 함수를 직접 호출하는 것은 그리 어렵지 않습니다.

Google 클라우드 기능 만들기



이 예에서는 간단한 클라우드 기능을 사용하겠습니다. 이 클라우드 함수는 'Hello world!'를 반환합니다. 다음 블로그 게시물에서는 클라우드 기능에 대한 보다 광범위한 사용 사례에 대해 살펴보겠습니다.

package com.example;

import com.google.cloud.functions.HttpFunction;
import com.google.cloud.functions.HttpRequest;
import com.google.cloud.functions.HttpResponse;
import java.io.BufferedWriter;

public class Example implements HttpFunction {
  @Override
  public void service(HttpRequest request, HttpResponse response) throws Exception {
    BufferedWriter writer = response.getWriter();
    writer.write("Hello world!");
  }
}


이 기능을 Google Cloud Platform에 배포하는 방법에 대한 전체 설명을 보려면 지침here을 따르십시오. 콘솔에서 안내하는 옵션도 있습니다. 이는 클라우드 기능 배포의 현재 진행 상황을 보여줍니다.

Flutter 애플리케이션 만들기



이제 클라우드 함수가 있으므로 함수를 호출해 보겠습니다. HTTP 호출을 통해 함수에 액세스할 수 있으므로 HTTP 패키지를 설치해야 합니다.

flutter pub add http


이제 HTTP 패키지가 설치되었으므로 HTTP 패키지의 get 메서드를 사용하여 함수를 호출할 수 있습니다.

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');
  }
}


그것이 필요한 전부입니다. 이제 위젯의 initState에서 이 메서드를 호출할 수 있습니다. 그러면 텍스트 위젯에 클라우드 기능의 결과가 표시됩니다.

class BasicGoogleCloudFunctionExample extends StatefulWidget {
  const BasicGoogleCloudFunctionExample({Key? key}) : super(key: key);

  @override
  _BasicGoogleCloudFunctionExampleState createState() => _BasicGoogleCloudFunctionExampleState();
}

class _BasicGoogleCloudFunctionExampleState extends State<BasicGoogleCloudFunctionExample> {
  late Future<String> futureAlbum;

  @override
  void initState() {
    super.initState();
    futureAlbum = callCloudFunction();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Google Cloud Function - basic',
      theme: ThemeData(
        primarySwatch: Colors.green,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Google Cloud Function - basic'),
        ),
        body: Center(
          child: FutureBuilder<String>(
            future: futureAlbum,
            builder: (context, snapshot) {
              if (snapshot.hasData) {
                return Text(snapshot.data!);
              } else if (snapshot.hasError) {
                return Text('${snapshot.error}');
              }
              return const CircularProgressIndicator();
            },
          ),
        ),
      ),
    );
  }
}


이 단계는 클라우드 기능을 호출하는 데 필요한 전부입니다! 이 예제의 코드는 여기Github에서 사용할 수 있습니다. 여전히 질문, 의견, 제안, 발언이 있으면 알려주세요!

게시물 Flutter – Calling a Google Cloud FunctionBarttje에 처음 나타났습니다.

좋은 웹페이지 즐겨찾기