编写个人主页组件
个人主页应包含个人信息、拥有的iCat、egg和物品。我们会对这几个部分分别编写 components 然后引用进同一个页面。
编写后端
个人信息,包括头像、背景、昵称、简介等,属于隐私信息,而区块链具有开源是属性,因此个人信息不适合上传到区块链上,我们仍需要使用传统的数据库来存放隐私数据。
提示
Solidity 中的private
类型并不能让数据真正的变成隐私数据。我们仍可以通过读取智能合约特定的 slot 来获取变量的值。
你可以选用任何数据库来存放这些数据,这里我们使用提供免费 PostgreSQL 额度的 supabase 作为后端数据库。
配置 supabase
到官网注册,然后在本页选择New project
,根据创建一个新的组织,在组织中创建一个新的项目,如果你想要从外部连接数据库的话,请牢记创建项目时设置的数据库密码。
创建成功后进入项目,根据下图的顺序依次复制数据库的 url 以及 public anon。
在前端项目根目录下的.env.local
文件中加入以下两个环境变量:
#supabase
NEXT_PUBLIC_SUPABASE_URL=
NEXT_PUBLIC_SUPABASE_ANON_KEY=
然后将上述复制的 url 以及 public anon 填入其中并保存。使用 VSCode 或其他软件连接上该数据库,在public
scheme 下创建一张新表 users。表中数据项名称和类型如下所示(数据项:数据类型):
uid
:uuid(用户唯一id,主键)address
:text(用户钱包地址)nick_name
:text(用户昵称)avatar
:text(用户头像 url)bio
:text(用户个人简介)cover
:text(用户封面背景图 url)