当我的用户注册时,他输入了他的电子邮件地址,用户名和密码。2电子邮件地址和密码被存储在Firebase Auth数据库中。3因此,一个ID被创建并与这个用户相关联。(例如kmupeDXnfEYnhbdpkvLUoFbIjnb 2)。现在我想创建一个用户配置文件(个人资料图片、用户名我必须创建一个Firestore集合和文档,其中包含链接到Firebase auth的用户名和ID(kmupeDXnfEYnhbdpkvLUoFbIjnb 2).我不知道该怎么做,有人能帮助我吗?非常感谢!x1c 0d1x
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:flutter_dev/reusable.dart';
import 'package:flutter_dev/home.dart';
class SignUp extends StatefulWidget {
const SignUp({super.key});
@override
State<SignUp> createState() => _SignUpState();
}
class _SignUpState extends State<SignUp> {
final TextEditingController _passwordTextController = TextEditingController();
final TextEditingController _emailTextController = TextEditingController();
final TextEditingController _userNameTextController = TextEditingController();
@override
Widget build(BuildContext context) {
return Scaffold(
resizeToAvoidBottomInset: false,
extendBodyBehindAppBar: true,
appBar: AppBar(
backgroundColor: Colors.transparent,
elevation: 0,
title: const Text('Sign Up'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const SizedBox(
height: 20,
),
reusableTextField("Enter Username", Icons.person_outline, false,
_userNameTextController, context),
const SizedBox(
height: 20,
),
reusableTextField("Enter Email ID", Icons.email_outlined, false,
_emailTextController, context),
const SizedBox(
height: 20,
),
reusableTextField("Enter Password", Icons.lock_outline, true,
_passwordTextController, context),
const SizedBox(
height: 20,
),
signInsignUpButton(context, false, () {
final db = FirebaseFirestore.instance;
db.collection("users").doc("uid").set({
'fullName': _userNameTextController,
'email': _emailTextController,
'accountCreated': Timestamp.now(),
}).onError((e, _) => print("Error writing document: $e"));
FirebaseAuth.instance
.createUserWithEmailAndPassword(
email: _emailTextController.text,
password: _passwordTextController.text)
.then((value) {
print("Created New Account");
Navigator.pushReplacement(context,
MaterialPageRoute(builder: (context) => const Home()));
}).onError((error, stackTrace) {
print("Error ${error.toString()}");
});
}),
],
),
),
);
}
}
1条答案
按热度按时间zf9nrax11#
我相信这将做你想要的:
FirebaseAuth.instance.createUserWithEmailAndPassword(
回调的类型为UserCredential
。您可以通过以下UserCredential
访问uid
:value.user.uid