
本页目录
Firebase 简介
Firebase是什么
Google Firebase 是一个后端即服务 (BaaS) 平台,旨在帮助开发人员构建、改进和扩展高质量的应用程序。它提供了各种工具和服务,让开发者可以专注于构建出色的用户体验,而无需花费大量时间管理后端基础设施。Firebase 可以与 Web 应用程序、移动应用程序以及游戏一起使用。
主要功能和优势
- 简化后端开发: Firebase 提供了许多预构建的服务,例如身份验证、实时数据库、云存储、托管等,从而减少了开发者需要编写和管理的代码量。
- 快速原型和开发: 通过使用 Firebase,可以更快地构建应用程序原型并进行迭代。
- 实时功能: Firebase 的 Realtime Database 和 Cloud Firestore 提供了实时数据同步功能,这对于需要实时更新的应用程序(如聊天应用或协作工具)非常有用。
- 扩展性: Firebase 构建于 Google 的基础设施之上,可以自动扩展以处理不断增长的用户群和数据量。
- 分析和监控: Firebase 提供了分析工具,可以跟踪用户行为、性能和应用程序的整体健康状况,帮助开发者做出明智的决策。
- 用户参与: Firebase 提供了多种工具来提高用户参与度,例如云消息传递、应用内消息和 A/B 测试。
- 跨平台支持: Firebase 支持多种平台,包括 iOS、Android、Web 和 C++,可以轻松地构建跨平台应用程序。
- 集成性: Firebase与谷歌的其他产品和服务集成良好。
- Firebase Studio: Firebase Studio的前身是 Project IDX, 集成了多种开发体验,可以让您更好的在其中进行开发。
Firebase 是一个功能强大且易于使用的平台,可以帮助开发者快速构建、改进和扩展应用程序。它提供了一系列后端服务,使开发者能够专注于构建出色的用户体验。它在实时应用和原型开发中有巨大的优势。
主要服务
- Authentication(身份验证): 支持多种身份验证方法,如电子邮件/密码、电话、Google、Facebook 等。
- Realtime Database(实时数据库): 一个 NoSQL 云数据库,可以实时同步数据。
- Cloud Firestore(云 Firestore): 另一个 NoSQL 云数据库,提供更高级的查询功能和扩展性。
- Cloud Storage(云存储): 用于存储和访问用户生成的内容,如图片和视频。
- Hosting(托管): 用于部署静态 Web 应用程序。
- Cloud Functions(云函数): 无服务器计算平台,可以运行后端代码。
- ML Kit(机器学习套件): 提供移动设备上的机器学习功能。
- Analytics(分析): 用于跟踪用户行为和应用程序性能。
- Crashlytics(崩溃分析): 用于跟踪和分析应用崩溃。
- Performance Monitoring(性能监控): 用于监控应用的性能指标。
- Test Lab: 用于在不同设备上测试应用
- App Distribution: 用于发布测试版本的应用。
Firebase玩法
免费服务
Firebase Studio
Firebase Studio是一个基于云端的代理开发环境,可帮助您构建和交付具有生产级品质的全栈 AI 应用,包括 API、后端、前端、移动应用等。Firebase Studio 将 Project IDX 与 Firebase 中的专用 AI 代理和 Gemini 协助功能整合在一起,从而提供一个可从任何位置访问的协作工作区,其中包含开发应用所需的一切内容。您可以导入现有项目,也可以使用支持各种语言和框架的模板开始创建新项目。
系统环境和配置
Firebase Studio 工作空间中开发环境使用的操作系统是 基于 Linux 的环境。 不同模板对应不同操作系统和配置。
- C++ 中默认安装了Docker
- Android Studio Cloud 默认使用了Ubuntu 24.04并提供了UI界面
- Empty Workspace提供了纯净的vscode编辑器
- Vue.js项目中内置了浏览器窗口
虽然 Firebase Studio 的界面和访问方式是通过浏览器,让你感觉像是在一个云端的 IDE 中工作,但实际上,在幕后为你提供计算和开发环境支持的是一个运行在 Google 基础设施上的 Linux 虚拟机(或容器)。
Ubuntu 服务器配置
Docker服务启动与配置。
sudo systemctl unmask docker.socket docker.service containerd.socket containerd.service
sudo systemctl start docker
实例挂起或释放
Firebase Studio 工作空间底层的 Linux 环境是动态且临时性的,其设计目标是为了高效利用资源并降低成本。因此,它会在多种情况下被挂起或释放。以下是主要的情况:
1. 不活动超时 (Inactivity Timeout):
- 长时间闲置: 如果你长时间没有在 Firebase Studio 工作空间进行任何操作(例如,没有编辑代码、没有使用终端、没有其他交互),底层的 Linux 环境很可能会被挂起或释放。
- 目的: 这是云环境的核心机制。当工作空间处于闲置状态时,它会占用资源却不产生价值。释放这些资源可以将其用于其他用户,并降低运营成本。
- 超时时长: 具体的不活动超时时长并没有公开说明,但很可能是在几分钟到一个小时之间。它的目标是在用户便利性和资源管理之间取得平衡。
2. 资源限制 (Resource Constraints):
- 其他用户占用过多资源: 在多租户云环境中,如果对资源的需求很高,系统可能会暂时挂起闲置或活动较少的工作空间,以确保资源可用于更活跃的用户。
- 工作空间资源限制: 如果你的工作空间由于某个错误进程或失控代码使用了过多的资源(CPU、内存等),系统可能会介入,挂起甚至终止该环境,以保护平台的整体稳定性。
3. 系统维护和更新 (System Maintenance and Updates):
- 计划维护: 和任何云服务一样,Firebase Studio 背后的基础设施需要定期维护和更新。在此期间,环境可能会被暂时挂起或迁移到其他服务器。
- 安全补丁: 应用安全补丁通常需要重启或重建环境,这可能会导致暂时性的挂起。
4. 工作空间关闭 (Workspace Closure):
- 显式关闭: 如果你明确关闭了 Firebase Studio 的标签页或浏览器窗口,并且在一段时间内没有返回,系统最终会认为该工作空间已关闭,并释放环境。
- 浏览器/连接问题: 意外的浏览器崩溃、连接中断或类似的网络问题也可能导致环境被释放,如果系统无法重新建立连接的话。
5. 账单和帐户状态 (Billing and Account Status):
- 账单逾期: 如果你的账户需要付费,并且存在账单问题或逾期付款,则环境可能会被暂停。
- 账户暂停: 如果用户账户因其他原因被暂停,相关的工作空间也可能会受到影响。
关键注意事项:
- 状态丢失: 当环境被释放时,其状态通常会丢失。任何没有保存到持久化存储的文件或数据都可能会丢失。
- 重新激活: 当你在挂起后重新连接到工作空间时,通常会重新分配一个新的环境,这可能需要一些时间(类似于冷启动)。
- 类似Cloud Run的缩容机制: 和 Cloud Run 类似,当不被使用时,Firebase Studio 背后的系统也可能会进行缩容。
总而言之,Firebase Studio 工作空间中的 Linux 环境被设计为临时性和动态性的。 它是为高效的资源利用而优化的,并且环境的创建和释放会根据使用模式来自动进行。这是基于云的开发环境中的典型行为。
Q&A
创建或申请服务器实例失败怎么办?
使用美国代理节点操作即可。
服务器不活动1小时左右被释放,如何保活?
- 有大量用户反馈在打开chrome浏览器访问网页并保持前台,可以保活1天时间(不确定)
- 可以尝试执行定时脚本任务进行保活(未测试)
是否支持常见的第三方控制面板,如宝塔面板,如何配置?
以宝塔面板为例演示如何使用。
docker run -d --restart unless-stopped --name baota -p 8888:8888 -p 8022:22 -p 443:443 -p 8080:80 -p 888:888 -v ~/website_data:/www/wwwroot -v ~/mysql_data:/www/server/data -v ~/vhost:/www/server/panel/vhost btpanel/baota:lnmp
如何自建代理节点?有哪些适用场景?
# 安装代理脚本
bash <(wget -qO- https://raw.githubusercontent.com/yonggekkk/sing-box-yg/main/sb.sh)
配置和使用方式参见视频演示。
因为服务器实例的临时性和动态性,无法确保服务器一直活跃不被释放回收,且Google服务器自身就需要科学上网才能使用,所以在无法进行科学上网的情况下,也无法单独使用Firebase Studio实例自建节点进行科学上网。
使用Firebase Studio自建代理节点科学上网并非常规用途,其正常适用场景我们在上期视频中已经做了详细介绍。
但这种使用方式也并非一无是处,在特定场景下还是可以排上用场的。 举例说明一下,我家人在国外,有时需要我远程传输一些学习和工作资料给她,这些文件可能高达2TB,我一般选择通过Google Drive或免费的T-Dirve网盘传输资料。 我们购买的机场一般都有流量限制,如果直接挂机场代理进行上述文件传输操作,几个小时流量就会耗尽,单独购买流量包价格不菲,此时使用Firebase Studio自建代理节点就是一个不错的选择,它没有流量限制,速度也还可以,保活一天时间同步文件是一个不错的选择。