Timy 应用

一款使用 flutter 构建的令人惊叹的开源群聊应用。

主要功能

  • 多个群组(类似于Slack中的Teams)。
  • 群组内有多个公开或私有频道。
  • 照片和照片集的共享。
  • 用表情符号响应消息。
  • 消息和频道更新的推送通知。
  • 特定活动频道(例如,包含日期、地点)。
  • 编辑活动频道。
  • 聚合所有群组和频道的即将到来和已过事件的日历。
  • 英语和德语本地化。
  • 活动回复。

项目结构

这是一个Flutter移动应用,面向Android和iOS。

Flutter应用的源代码包含在lib文件夹中,而
不同的原生应用在androidios中。额外的项目资产在
assetsfonts中。

此外,此仓库还托管了一系列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.设置登录方法和添加用户

需要配置初始登录方法。

添加用户

目前用户需要手动添加。

  • 在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.plistGoogleService-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中配置的生产环境配置。

GitHub

https://github.com/janoodleFTW/timy-messenger