Timy 应用
一款使用 flutter 构建的令人惊叹的开源群聊应用。
主要功能
- 多个群组(类似于Slack中的Teams)。
- 群组内有多个公开或私有频道。
- 照片和照片集的共享。
- 用表情符号响应消息。
- 消息和频道更新的推送通知。
- 特定活动频道(例如,包含日期、地点)。
- 编辑活动频道。
- 聚合所有群组和频道的即将到来和已过事件的日历。
- 英语和德语本地化。
- 活动回复。
项目结构
这是一个Flutter移动应用,面向Android和iOS。
Flutter应用的源代码包含在lib文件夹中,而
不同的原生应用在android和ios中。额外的项目资产在
assets和fonts中。
此外,此仓库还托管了一系列Firebase配置文件和云函数。
Firebase部分的文档位于firebase文件夹内。
先决条件和入门
Client
要构建和运行移动应用,您需要安装Flutter及其依赖项。要验证您的安装,请在项目的根目录中运行:
$ flutter doctor
该应用针对纵向模式的Android和iOS手机进行了优化。
注意:此外,您还需要将Firebase应用的GoogleService-Info添加到您的客户端,如下方B3.配置Firebase应用中所述。
后端(Firebase)
后端使用Firebase的node.js SDK构建。所有文件均在firebase文件夹中提供。要部署代码,请创建一个应用并安装Firebase CLI(请参阅入门中的步骤1和2)。
注意:以下步骤假定您使用的是Firebase的免费Spark Plan。因此,我们将手动执行配置。
B1.设置登录方法和添加用户
需要配置初始登录方法。
- 在console.firebase.google.com中选择您的项目。
- 导航到
Authentication - 选择
Sign-in methods并激活Email / Password。
添加用户
目前用户需要手动添加。
- 在Firebase中导航到
Authentication并选择Users。 - 然后
Add user。
请复制已创建用户的User-UID。我们将在下一步中将此ID添加到组中。
注意:您至少需要配置一个用户才能使用该应用。
B2.创建和设置数据库
在Firebase控制台中,选择Develop下的Database,并在区域eur3 (europe-west)中创建Cloud Firestore数据库。
注意:要使用该应用,您需要创建一个组。“Group”类似于Slack中的“Team”。要创建一个
创建组集合
- 选择您刚刚创建的数据库。
Create collection并将其命名为groups。- 添加您的第一个组,并具有以下属性
| 名称 | 类型 | value |
|---|---|---|
| 缩写 | 字符串 | TE |
| color | 字符串 | ffffff |
| 成员 | 数组 | 我们在上面添加用户中检索到的用户UID |
| 名称 | 字符串 | test |
我们现在已经设置了第一个测试组。除了此步骤之外,我们还需要设置一个默认的Channel(例如,类似于Slack中的#general)。
创建频道子集合
- 在
groups集合中,选择新创建的组。 - 在组内
Create collection,命名为channels。 - 添加您的第一个频道,并具有以下属性
| 名称 | 类型 | value |
|---|---|---|
| 名称 | 字符串 | general |
| 类型 | 字符串 | TOPIC |
| 可见性 | 字符串 | OPEN |
B3.配置Firebase应用
接下来,您需要按照将Firebase添加到应用/Flutter中的说明配置您的Firebase Flutter应用。
iOS
- 输入iOS-Bundle-ID:
de.janoodle.circlesApp.debug - 下载并重命名
GoogleService-Info.plist为GoogleService-Info-Dev.plist。 - 将文件复制到
ios/Runner/Firebase。
注意:如果您正在构建发布版本,还需要添加一个GoogleService-Info-Prod.plist,指向您的生产Firebase应用。
B4.部署Firebase函数
导航到firebase目录,并使用以下命令部署所有函数
$ firebase deploy --only functions
B5.最后步骤
使用您喜欢的IDE(例如Visual Studio Code / Android Studio)运行Flutter应用。接下来,您需要运行该应用。
注意:请跳过可能出现的任何错误。
使用您上面创建的用户登录。
接下来创建您的第一个event以设置我们后端中的日历集合。
创建事件
- 在应用中,选择汉堡菜单
- 点击
Events旁边的+号 - 输入任何您喜欢的数据,然后点击
Create
现在,在您的数据库的根级别,您应该在Firebase控制台中看到一个名为calendar的集合。
现在,我们可以使用以下命令部署我们后端的所有部分
$ firebase deploy
部署
该应用已设置为支持开发和生产环境。我们建议为每个环境创建不同的Firebase应用。
构建发布版本时,应用将自动使用您在步骤B3中配置的生产环境配置。