cloud_functions 0.6.0+1 cloud_functions: ^0.6.0+1 copied to clipboard
Flutter plugin for Cloud Functions.
// Copyright 2018, the Chromium project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:cloud_functions/cloud_functions.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _response = 'no response';
int _responseCount = 0;
@override
Widget build(BuildContext context) {
final HttpsCallable callable = CloudFunctions.instance
.getHttpsCallable(functionName: 'repeat')
..timeout = const Duration(seconds: 30);
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Cloud Functions example app'),
),
body: Center(
child: Container(
margin: const EdgeInsets.only(top: 32.0, left: 16.0, right: 16.0),
child: Column(
children: <Widget>[
Text('Response $_responseCount: $_response'),
MaterialButton(
child: const Text('SEND REQUEST'),
onPressed: () async {
try {
final HttpsCallableResult result = await callable.call(
<String, dynamic>{
'message': 'hello world!',
'count': _responseCount,
},
);
print(result.data);
setState(() {
_response = result.data['repeat_message'];
_responseCount = result.data['repeat_count'];
});
} on CloudFunctionsException catch (e) {
print('caught firebase functions exception');
print(e.code);
print(e.message);
print(e.details);
} catch (e) {
print('caught generic exception');
print(e);
}
},
),
],
),
),
),
),
);
}
}