You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter开发:Firebase Auth新增用户后如何存储到Firestore数据库

Firebase Auth注册数据同步到Firestore操作指南

1. 前置依赖配置

  • 首先在pubspec.yaml的dependencies节点下添加cloud_firestore依赖,版本需要和你当前使用的firebase_auth版本兼容:
dependencies:
  flutter:
    sdk: flutter
  firebase_core: ^你的现有版本号
  firebase_auth: ^你的现有版本号
  cloud_firestore: ^对应兼容版本
  • 执行flutter pub get安装依赖
  • 进入Firebase控制台开启Firestore Database,测试阶段可以先将安全规则设置为(上线前请替换为正式权限规则):
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

2. 修改注册页面代码

首先在注册页面的代码顶部导入Firestore包:

import 'package:cloud_firestore/cloud_firestore.dart';

然后在_SignUpPageState类中添加Firestore实例:

FirebaseAuth _auth = FirebaseAuth.instance;
FirebaseFirestore _firestore = FirebaseFirestore.instance; // 新增这行
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();

修改signUp方法,在用户注册成功、更新完displayName之后,添加写入Firestore的逻辑:

signUp() async {
  if (_formKey.currentState.validate()) {
    _formKey.currentState.save();
    try {
      UserCredential userCredential = await _auth.createUserWithEmailAndPassword(
          email: _email, password: _password);
      if (userCredential.user != null) {
        await _auth.currentUser.updateProfile(displayName: _username);
        // 新增以下写入Firestore逻辑
        await _firestore.collection('users').doc(userCredential.user.uid).set({
          'uid': userCredential.user.uid,
          'username': _username,
          'email': _email,
          'createdAt': FieldValue.serverTimestamp(),
          // 可以根据需求添加其他自定义字段
        });
        // 原来的跳转逻辑保留
        await Navigator.pushReplacementNamed(context,"/") ;
      }
    } catch (e) {
      showError(e.message);
      print(e);
    }
  }
}

3. 逻辑说明

  • 这里使用用户的uid作为Firestore users集合的文档ID,方便后续通过用户身份直接查询对应用户数据,避免额外的查询过滤操作
  • 登录逻辑不需要修改,只有新用户注册的时候才需要写入初始用户数据,后续用户信息更新可以单独调用update方法修改对应文档
  • 如果出现权限报错,优先检查Firestore安全规则是否配置正确,以及注册流程是在用户登录成功之后才执行写入操作

内容的提问来源于stack exchange,提问作者New user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 13:45:08