Instagram 克隆
使用 Flutter 3 和 Firebase 实现的 Instagram 克隆。本项目侧重于 Flutter 的跨平台功能和响应式 UI。
- Android, iOS & Web(稳定)
- Macos (问题:image_picker 不可用)
- Windows 和 Linux?(进行中:使用 Firedart 不支持 Firebase)
功能
- 动态屏
- 查看帖子,通过 stream builder 实现实时 UI 更新
- 帖子的实时评论
- 删除帖子
- 点赞时的爱心动画
- 搜索屏
- 搜索屏显示除您自己的所有图片
- 按用户名搜索
- 图片上传屏
- 上传带描述的图片
- 个人资料屏
- 关注/取消关注功能
- 图片网格视图
待办事项
- 一对一聊天屏
- 编辑用户详情
- Google 登录
- 视频分享和标签支持
- 单元测试
- 为响应式视图添加功能
- 通知屏
- Windows 和 Linux 支持
- Github Action 流水线
video.mp4
入门
1. 设置 Flutter
2. 克隆仓库
$ git clone https://github.com/debanshu777/Instagram-Clone
$ cd Instagram-Clone/
3. 设置 Firebase 应用
1. 您需要创建一个 Firebase 实例。请遵循 https://console.firebase.google.com 上的说明。
2. 创建 Firebase 实例后,您需要启用电子邮件和密码身份验证。
3. 启用 Firebase 数据库
- 转到 Firebase 控制台。
- 在左侧菜单中点击“数据库”
- 点击 Cloudstore 的“创建数据库”按钮
- 选择“以测试模式开始”并“启用”
- 转到 rules 选项卡,并删除第 6 行。
4. 启用 Firebase Storage:执行与上述相同的操作
5. (未在 Android 上运行时跳过)
- 在您的 Firebase 实例中为 Android 创建一个应用程序,包名称为 com.example.instagram_clone
- 运行以下命令获取您的 SHA-1 密钥。
keytool -exportcert -list -v \
-alias androiddebugkey -keystore ~/.android/debug.keystore
- 在 Firebase 控制台中,在你 Android 应用的设置中,通过点击“添加指纹”来添加你的 SHA-1 密钥。
- 按照说明下载 google-services.json。
- 将
google-services.json放入/android/app/。
6. (未在 iOS 上运行时跳过)
- 在 Firebase 实例中为 iOS 创建一个应用,使用您的应用包名。
- 按照说明下载
GoogleService-Info.plist - 打开 XCode,右键单击 Runner 文件夹,选择“Add Files to ‘Runner’”菜单,然后在 XCode 中选择
GoogleService-Info.plist文件添加到 /ios/Runner(*请使用 XCode 进行此操作,否则无法确保配置*) - 确保在您的
/ios/Runner/Info.plist中的<dict>块内添加这些以访问相机和图库
<key>NSPhotoLibraryUsageDescription</key>
<string>Photo Library Usage</string>
<key>NSCameraUsageDescription</key>
<string>Camara Usage</string>
<key>NSMicrophoneUsageDescription</key>
<string>Microphone Usage</string>
7. (未在 macOS 上运行时跳过)
- 按照说明下载
GoogleService-Info.plist - 将其放入
/macos/目录中
仔细检查两者的安装说明
- Google Auth 插件
- Firestore 插件
Firebase Firestore & Firebase Storage 结构
Firebase Storage Schema is simple,
- posts---Folder(User ID as name)---images inside
- profileIamge---Images(User ID as name)
想贡献吗?
太棒了!如果您想为该项目做出贡献,随时欢迎!有任何问题、疑问或想表达您的意见、观点?随时欢迎。您可以发送电子邮件至 [email protected] 或创建一个 issue。正在寻找贡献者!不要害羞。?随时可以提交 issues/pull requests 来帮助我改进此项目。
- 报告新 issue 时,请务必附上您报告问题的屏幕截图、视频或 GIF。
- 提交新的 PR 时,请确保所有测试都通过。必要时编写新测试。
贡献者
许可证
Instagram 名称、艺术作品、商标均为 Meta Inc. 的财产。本项目仅用于教育目的。它不隶属于 Meta Inc.,也未获得其批准。

