Flutter 团队群聊应用,集成 Firebase
一个完整的 Flutter 团队群聊应用,集成了 Firebase,支持视频通话。它处理输入、已接收和已读指示器、团队管理、应用关闭和打开通知、安全性、账户创建、登录、生成 Agora UID 的互斥锁等等。
- Firebase Cloud Messaging (FCM) 用于在用户发送新消息或加入视频通话时发送推送通知。
- Firebase Cloud Functions:后端处理 Agora 令牌请求,以便用户可以加入通话。它还在 Firestore 文档更改时运行触发器,例如创建新消息时发送推送通知。
- 视频通话由 Agora 处理,使用
agora_rtc_engine包处理视频通话,使用agora_uikit处理视频通话屏幕布局。 - Firestore 安全规则:
firestore.rules文件包含规则,例如:只有管理员才能将用户添加到团队,用户只能查看其他用户的公开数据等。 - Firestore 索引:
firestore.indexes.json文件包含 Firestore 索引。
? 点击此处打开视频
| Android | iOS | Web | |
|---|---|---|---|
| 视频通话 | ✅ | ✅ | ❌ |
| 所有其他功能 | ✅ | ✅ | ✅ |
入门
步骤 1
要开始,请在 flutter_app 文件夹中打开终端。
前往您的 Firebase 项目 > 点击“项目概览”旁边的“引擎”⚙️ 按钮 > 复制您的项目 ID。按照将 Firebase 添加到您的 Flutter 应用的说明操作,并在 flutter_app 文件夹内运行以下两个命令,将 paste-your-project-id-here 替换为您自己的项目 ID。
dart pub global activate flutterfire_cli
flutterfire configure --project=paste-your-project-id-here
前往您的 Firebase 控制台 > 构建 > 身份验证 > 开始 > 登录方式 > 电子邮件/密码,然后启用电子邮件/密码并保存。
前往您的 Firebase 控制台 > 构建 > Firestore 数据库 > 创建数据库。您可以选择任何选项(在生产模式下开始或在测试模式下开始),这并不重要,因为我们将在后续步骤中更新安全规则。
第 2 步:推送通知(可选)
iOS 和 Web 平台需要为 Firebase Cloud Messaging (FCM) 进行额外配置,以便在用户收到新文本消息时显示推送通知。
iOS
Web
Web 需要 **vapidKey**。
- 在 Firebase 控制台中获取您的 vapidKey,您可以查看此处的说明。
- 转到文件
flutter_app/lib/core/domain/services/notifications_service.dart - 将
_vapidKeyForWeb的值替换为您自己的 vapidKey
在 web/environment 文件中设置环境
- 从
flutter_app/lib/firebase_options.dart文件中的web字段复制值 - 将值粘贴到
flutter_app/web/environment.js文件中
第 3 步:视频通话(可选)
支持的平台
- 创建您的 Agora 账户,前往项目页面并点击“创建项目”
- 在“身份验证”下选择安全模式:APP ID + Token(推荐)选项
- 复制 **App ID** 值并保存在您的记事本中,以便稍后使用
- 点击“配置”
- 在“应用证书”下,也复制主要证书值
- 转到
functions/environment.ts并设置 Agora App ID 和 App Certificate。 - 转到
flutter_app/lib/environment.dart并仅在此处设置 Agora App ID。
⚠️ 请勿泄露您的应用证书
第 4 步:部署
- 运行
npm install -g firebase-tools来安装 Firebase CLI - 运行
firebase use --add并选择您的 Firebase 项目,添加您喜欢的任何别名 - 可选:如果您不想部署到 Web,请转到
firebase.json文件并删除hosting对象 - 最后,运行
firebase deploy,这样就可以更新 Firestore 安全规则,创建云函数和索引。
联系我们
欢迎就以下问题在 GitHub 上打开 issue:
-
? 问题
-
? 建议
-
? 潜在的错误
