I am working on a mobile app. I am using cloud functions for completing the registration process. Following is a simplified reproducible example of my code:- the dart File:-
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:cloud_functions/cloud_functions.dart';
void main() => runApp(MaterialApp(home: Test()));
class Test extends StatefulWidget {
const Test({
Key key,
}) : super(key: key);
@override
State<StatefulWidget> createState() => TestState();
}
class TestState extends State<Test> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey,
appBar: AppBar(
title: Text('Hi,',style: GoogleFonts.pacifico(fontSize: 25),),
),
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
children:<Widget> [
Row(
mainAxisAlignment: MainAxisAlignment.center,
children:<Widget>[
Padding(padding:const EdgeInsets.all(8)),
ElevatedButton(
onPressed:(){
enroll.call("Password", "email@gmail.com", "name");
},
child:Padding(
padding: const EdgeInsets.all(12.0),
child: Text('TEST',style: TextStyle(fontSize: 20.0),)
),
),
],
),
],
),
);
}
Future<void> enroll(String pass,String email,String name) async {
HttpsCallable register = FirebaseFunctions.instanceFor(region: 'asia-south1').httpsCallable('Register');
final funcCall = await register.call(
<String, dynamic>{
'pass': pass,
'email': email,
'Name': name,
});
String result = funcCall.data;
print(result);
}
}
Firebase function code is:-
import * as functions from "firebase-functions";
const admin = require('firebase-admin');
admin.initializeApp();
exports.Register = functions.region('asia-south1').https.onCall(async (data,context)=>{
const pass = data.pass;
const Name = data.name;
const email = data.email;
await admin.auth()
.createUser({
email: email,
emailVerified: false,
password: pass,
displayName: Name,
disabled: false,
})
.then(() => {
console.log("done")
return "done"
})
.catch((error: any) => {
console.error(error.code);
return error.code
});
});
The firebase console logs were the following during last execution:-
->10:54:37.099 AM
Register
Function execution took 662 ms, finished with status code: 200
->10:54:37.095 AM
Register
auth/email-already-exists
->10:54:36.438 AM
Register
Function execution started
The debug logs were:-
I/ViewRootImpl@3af8d1b[MainActivity]( 5889): ViewPostIme pointer 0
I/ViewRootImpl@3af8d1b[MainActivity]( 5889): ViewPostIme pointer 1
W/ckerbin.atchec( 5889): Accessing hidden method Lcom/android/org/conscrypt/ConscryptEngineSocket;->setUseSessionTickets(Z)V (greylist-max-q,core-platform-api, reflection, denied)
W/ckerbin.atchec( 5889): Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setUseSessionTickets(Z)V (greylist-max-q,core-platform-api, reflection, denied)
W/ckerbin.atchec( 5889): Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setUseSessionTickets(Z)V (greylist-max-q, reflection, denied)
W/ckerbin.atchec( 5889): Accessing hidden method Lcom/android/org/conscrypt/ConscryptEngineSocket;->setHostname(Ljava/lang/String;)V (greylist-max-q,core-platform-api, reflection, denied)
W/ckerbin.atchec( 5889): Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setHostname(Ljava/lang/String;)V (greylist-max-q,core-platform-api, reflection, denied)
W/ckerbin.atchec( 5889): Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setHostname(Ljava/lang/String;)V (greylist-max-q, reflection, denied)
W/ckerbin.atchec( 5889): Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setAlpnProtocols([B)V (greylist-max-q,core-platform-api, reflection, denied)
W/ckerbin.atchec( 5889): Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->setAlpnProtocols([B)V (greylist-max-q, reflection, denied)
W/ckerbin.atchec( 5889): Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->getAlpnSelectedProtocol()[B (greylist-max-q,core-platform-api, reflection, denied)
W/ckerbin.atchec( 5889): Accessing hidden method Lcom/android/org/conscrypt/AbstractConscryptSocket;->getAlpnSelectedProtocol()[B (greylist-max-q, reflection, denied)
I/flutter ( 5889): null
Both the codes are simplified versions of the actual code so please don't say why using cloud function for this..