Что такое метод использования Firebase Cloud Functions во Flutter. - PullRequest
0 голосов
/ 01 мая 2018

Я все время искал, как реализовать функции firebase с помощью приложения для флаттера. Похоже, что нет доступного SDK (пока). Я также попытался добавить зависимость gradle implementation 'com.google.firebase:firebase-functions:15.0.0' к своему app/build.gradle, но это вызывает ошибки сборки.

Кто-нибудь сделал реализацию, которая работает? Я не могу найти какую-либо документацию о том, как обрабатывать учетные данные и транспортировку данных, чтобы создать свой собственный вызов функций Firebase.

Я создал грубую схему того, как, по моему мнению, это должно работать, но, возможно, это далеко от основы.

Future<dynamic> updateProfile(String uid, AccountMasterViewModel avm) async {

    Uri uri = Uri.parse(finalizeProfileFunctionURL);
    var httpClient = new HttpClient();
    String _result = '';

    try {
      return await httpClient
        .postUrl(uri)
        .then((HttpClientRequest request) {
          return request.close();
          // authentication??
          // Fields and data??
        })
        .then((HttpClientResponse response) async {
            print(response.transform(new Utf8Codec().decoder).join());
            if (response.statusCode == HttpStatus.OK) {
              String json = await response.transform(new Utf8Codec().decoder).join();
              _result = jsonDecode(json);
              // Do some work
              return json;
            } 
            else {
              return ':\nHttp status ${response.statusCode}';
            }
          });
        }
        catch (exception) {
          return 'Failed ' + exception.toString();
        }
      }

Я бы хотел иметь возможность отправить объект, например

{
    accountID: src.accountID, 
    accountName: src.name,
    accountImg: src.image
}

, а затем обработайте ответ. Но, как я уже сказал, я не могу найти какие-либо рабочие примеры или учебники о том, как это сделать. Сделать размер клиента и общаться напрямую с базой данных довольно просто, однако существуют проверки и компоненты данных, которые необходимо скрыть от клиента, поэтому я хотел бы сделать это с помощью облачных функций.

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

Облачные функции могут запускаться триггерами изменения данных в базе данных реального времени, Firestore или Datastore, а также триггерами аутентификации.

Вы могли бы просто упорствовать

{
    accountID: src.accountID, 
    accountName: src.name,
    accountImg: src.image
}

в базу данных и зарегистрируйте триггер, запускающий облачную функцию, когда данные по определенному пути вставляются, обновляются или удаляются.

https://firebase.google.com/docs/functions/firestore-events

0 голосов
/ 16 сентября 2018

Да, здесь доступен пакет cloud_function: https://pub.dartlang.org/packages/cloud_function.

для вызова функции, которую вы можете просто вызвать

CloudFunctions.instance.call(
                    functionName: 'yourCloudFunction',
                    parameters: <String, dynamic>{
                      'param1': 'this is just a test',
                      'param2': 'hi there',
                    },
                  );
0 голосов
/ 08 мая 2018

Это хороший урок по облачным функциям во флаттере, который мне помог:

https://rominirani.com/tutorial-flutter-app-powered-by-google-cloud-functions-3eab0df5f957

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...