这篇博客我们主要介绍了 Firebase 在国内的替代方案,如何使用替方案实现实时后端,还有演示了读取实时数据的效果。在开始之前,我们先介绍一下背景,这样你会更清晰知道这些技术是怎么发展出来的。


Firebase 是什么?

Firebase 是一家实时后端数据库创业公司,它能帮助开发者很快的写出 Web 端和移动端的应用。于 2014 年 10 月被 Google 收购了,之后 Google 把 Firebase 整合到现在的 Google Cloud Platform 里,所以你现在用 Firebase基本上都是 Google Cloud Platform 里使用的。


所以 Firebase 在国内能用吗?

Google 北京给出的官方答案是: 不可以

还有根据中国的法例,中国用户的数据必需存放在中国内境内的服务器上。所以如果通过代理或其他方式把用户数存放在中国内境外的数据库是不允许。

所以,就算能用,如果你把用户数据弄到国外,也是不合法的。



Firebase 在国内的替代方案?


如果要说最接近 Firebase 的,只能说 Parse 了, 那 Parse 又是什么?

Parse 是一个基于云端的后端管理平台。对于开发者而言,Parse提供后端的一站式和一揽子服务:服务器配置、数据库管理、API、影音文件存储,实时消息推送、客户数据分析统计、等等。这样,开发者只需要处理好前端 / 客户端 / 手机端的开发,将后端放心的交给 Parse 即可。

脸书 (Facebook) 于 2013 年收购了 Parse,后来又决定了把 Parse 关闭,最后 Parse 团队决定了把代码开源了,这就有了现在的 Parse ServerParse Dashboard,最近也支持上 GraphQL 等功能


背景介绍完了, 我们来进入正题了,怎么部署和怎么用 Parse ?

如果你喜欢钻研各种包怎么安装,可以直接到 Parse 的网官网,研究一下怎么把 Parse 装到你的服务器上,我相信大部分人都想找简单的,全托管的,想开箱即用的方案,公司能专注自己昨业务发展,这也是 21YunBox 创立的原因,为你提供各种免运维,一键部署和开箱即用的服务。

你可以跟着下面几步,在 21YunBox 里启动你的 Parse (或 国内的 Firebase):


  1. 注册成为 21云盒子会员
  2. 创建一个 MongoDB 数据库
  3. Fork Parse Server 启动模板
  4. 在 21云盒子 上创建一个 云服务, 并允许21云盒子访问你的代码库
  5. 用下面配置进行创建
环境 Node
构建命令 yarn install
启动命令 yarn start

进阶配置 进行环境变量配置:

KEY VALUE
APP_ID 随机生成 32 位字符
MASTER_KEY 随机生成 32 位字符
JS_KEY 随机生成 32 位字符
MONGODB_URI 在云数据库控制台中点 数据库URL 获取
SERVER_URL <APP_ID>.21cloudbox.com, 如 parse-server-demo.21cloudbox.com
PORT 10000, 21云盒子默认使用的端口

更多其他 Parse Server 的环境变量配置,可参考 官方文档

随机生成 32 位字符方法: 在 命令行 粘贴一下以下命令:

echo $(base64 /dev/urandom | head -c32)


不用一会,你的 Parse 服务就启动了,你可以就在 your-app.21cloudbox.com 的子域名上能访问。 Parse Server 默认提供了一个很简单的测试代页面,你可以到 <APP_ID>.21cloudbox.com/test,进行测试。当测试成功后,你会看到以下的效果。

Parse 部署成功
Parse 部署成功


以下是上述步骤无删减的录屏 (没有声音), 供你参考:

Firebase国内替代方案 - 如何把 Parse 部署到服务器



如无意外,到了这一步,你的 Parse 服务已经启动成功了。下一个主题就是 怎么读取实时数据?,我想这也是你用 Firebase 的核心原因之一,顺便说一下题外话,如果你觉得,还需要了解 Parse 的更多属性,可以加我们客服,预约相关专家和你沟通。

回到正题,我们为你准备了 Parse 读取实时数据的一些示例代码,你可以直接拿来用(参考),在看代码之前我们先效果:


Firebase国内替代方案 - 读取实时数据演示


在上面的效果录屏里,你可以看到,我们用 Postman 发出 POST 的请求生成数据,然后在网页里是实时读取到新建的内容。这只是一个示例,但你已经可以看到了实时后端的效果了,将来如果你要用来开发移动端 (Android / iOS / tvOS / iPadOS),或者是后端的 (Python, .Net, PHP等),Parse 也有成熟的 SDK。

按刚说的,这是实时读取数据的代码仓库,你可以直接拿来用(参考)。除此之外, 你还能用 POST / GET 的方式进行内容创建和读取,下面是一些操作示例:



如何使用 Parse Server 创建和读取数据?

你可以使用 curl 指令或者使用可视化界面的 Postman 帮你创建和读取数据。

创建数据

curl 的方式创建

curl -X POST \
-H "X-Parse-Application-Id: <APPLICATION_ID>" \
-H "Content-Type: application/json" \
-d '{"score":1337,"playerName":"Sean Plott","cheatMode":false}' \
https://<APP_ID>.21cloudbox.com/parse/classes/GameScore

创建成功后,你应该会收到一个类似的 json

{
    "objectId": "9ed7LlOzn2",
    "createdAt": "2021-03-25T07:03:28.668Z"
}

读取数据

通过objectId, 读取上面创建的数据

curl -X GET \
  -H "X-Parse-Application-Id: APPLICATION_ID" \
  https://<APP_ID>.21cloudbox.com/parse/classes/GameScore/9ed7LlOzn2
// Response
{
    "objectId": "9ed7LlOzn2",
    "score": 1337,
    "playerName": "Sean Plott",
    "cheatMode": false,
    "createdAt": "2021-03-25T07:03:28.668Z",
    "updatedAt": "2021-03-25T07:03:28.668Z"
}

用 Postman 创建和读取数据演示:

Firebase国内替代方案 - 用 Postman 创建和读取数据

除了上面简单的使用 curl 或 Postman 的方法创建数据,Parse 也提供了多语言的 SDK (iOS, Android, PHP等等),更多细节请查看 Parse 官方技术文档: http://docs.parseplatform.org/



相关博客




想试用 21YunBox 部署你的项目了吗?

免费 7 天试用