Firebase 的数据传输和用户验证:以 Python 和 JavaScript 为例

开始

需要准备的一些工具:

Python 和 Firebase 的数据传输

要使 Python 和 Firebase 之间传输数据,需要安装额外的包,但是这些都是非官方维护的包,所以基本上都已经无法使用,但是这里提供一个经过改进的SDK包仍然可以使用:https://github.com/nhorvath/Pyrebase4。注意:官网提供的SDK包是给 Admin 管理员批量管理数据和账号使用的,也就是说其不适用于客户端。

登录 Google Firebase 创建一个新应用,创建后在下列路径中找到 Firebase 的配置文件:设置 –> 项目设置 –> 您的应用 –> Firebase SDK snippet –> 配置,复制类似下方的代码:

下方代码仅列出了重要的部分,其余部分可以转至 Github 查看源码。首先,需要引入相关的包:

用户验证 Auth

初始化 Firebase,调用用户验证模块:

这里仅使用用户的邮箱和设置的密码进行验证操作,如果验证成功则会显示成功的弹窗。将验证过后的 Token 保存在本地,以便其他函数调用。由于 Firebase 不支持 @ 等特殊符号,如果需要保存这类特殊符号,则需要进行更改(按个人喜好)。

上传数据 Realtime database

导入用户登录数据和凭证(注意:目前该凭证有效期为一个小时,但是可以进行续期):

获取对数据库(Realtime database)、云储存(Storage)服务的引用:

将要上传的数据类型为 json 形式,json文件的设计形式可以查看这篇文章

将 dataUser 上传至 user/userUniqueId 这个节点之下,userUniqueId 为用户特定的 Id 编号(自行设定),而后面的 user['idToken'] 为用户的身份验证(如果没有,将无法上传成功)。上传完成之后,如下图所示:

上传图片等文件 Storage

上传图片等文件至 Firebase Storage ,操作类似于前者。下方案例中,本地文件储存在 image_raw/ 文件夹之下,且是以时间戳命名。使用 put 即可将文件上传至 userUniqueId/路径之下,userUniqueId 为用户特定的 Id 编号(自行设定),需要注意的是 child 处无需写文件后缀,不然无法上传成功。

参考资料

JavaScript 和 Firebase 的数据传输

在 JavaScript 项目中添加 Firebase

添加 Firebase SDK 并初始化 Firebase,在应用的文件夹下安装 Firebase SDK:

在应用中初始化 Firebase。在本 App 中,Firebase 的初始化文件在 srcComponentsfirebase.js 文件中,然后 App.js 文件调用一次即可。

用户注册和身份验证 Auth

引入 firebase 和 auth 包:

创建一个组件,在本例中,该组件为 AuthInput.js,下方有两个函数分别为用户注册和用户登录。下方为一个注册按钮组件的例子,这个按钮将调用 signUpWithEmailPassword 函数,并将用户输入的用户名和密码传至该函数:

上方调用了 signUpWithEmailPassword 函数,在该函数中使用了 createUserWithEmailAndPassword 用户创建用户。此外,signInWithEmailAndPassword的操作也类似,具体的调用过程如下所示或者可以查询官方文档。若登录发生错误(用户名、密码不正确或者是用户已注册等情况),Firebase 将会返回不同的错误信息,这里为了简单起见,统一显示为“遇到了一些错误!”。

读取数据和文件

引入 firebase 和 auth 、database 、 storage 包:

读取用户的数据,然后进行进一步处理。

读取用户 Storage 中指定路径下的文件,userNameGenerate(userEmail) 为用户的个性路径,.list({ maxResults: 5 }) 表示读取最多5个文件(注意此处文件将会以升序的方式列出,也就是说列出的文件为最初的那些文件,而不是最新的文件。所以,这里我使用了listAll,然后使用 reverse() 将数组反转)。其余操作可以查看官方文档进行进一步查看。

参考资料

《Firebase 的数据传输和用户验证:以 Python 和 JavaScript 为例》有2个想法

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注