本示例是一个简单的外卖查看店铺点菜的外卖微信小程序,小程序后端服务使用了MemFire Cloud,其中使用到的MemFire Cloud功能包括:
其中使用到的MemFire Cloud功能包括:
- 云数据库:存储外卖微信小程序所有数据表的信息。
- 即时API:创建数据表时会自动生成 API。
- 对象存储:存储外卖微信小程序中物料的图片。
创建应用
目的:通过创建的一个MemFire Cloud应用来获得数据库、对象存储等一系列资源,并将获得该应用专属的API访问链接和访问密钥,用户可以轻松的调用API接口与以上资源进行交互。
登录MemFire Cloud, 在“我的应用”页面创建一个新应用
创建数据表
创建notepad_list表
在“表编辑器”页面,点击“新建表”,创建notepad_list 表。notepad_list 表主要记录云笔记小程序列表信息,表结构字段如下:
名称 | 类型 | 描述 |
---|---|---|
id | bigint | 主键,自动为列分配一个连续的唯一编号,唯一标识ID |
create_time | timetamptz | 创建时间 |
update_time | timetamptz | 修改时间 |
class | text | 类名 |
title | text | 笔记标题 |
value | text | 笔记内容 |
user_id | uuid | 创建笔记的人的id |
sql建表语句
create table
public.notepad_list (
id bigint generated by default as identity,
create_time timestamp with time zone not null default now(),
state smallint null,
class text null,
value text null,
title text null,
update_time timestamp with time zone null default now(),
user_id uuid null,
constraint notepad_list_pkey primary key (id)
) tablespace pg_default;
创建策略
接下来,需要给notepad_list表创建1条策略,此策略通过 SELECT 操作为所有用户提供对表的读取访问权限。在“SQL执行器”页面,点击“新查询”按钮,新建一个SQL Query,执行以下操作:
CREATE POLICY "Enable read access for all users" ON "public"."notepad_list"
AS PERMISSIVE FOR SELECT
TO public
USING (true)
创建feedback 表
在“表编辑器”页面,点击“新建表”,创建feedback 表。feedback 表主要记录云笔记小程序反馈信息,表结构字段如下:
名称 | 类型 | 描述 |
---|---|---|
id | bigint | 主键,自动为列分配一个连续的唯一编号,唯一标识ID |
content | text | 反馈内容 |
user_id | uuid | 反馈人的id |
created_at | timetamptz | 创建时间 |
sql建表语句
create table
public.feedback (
id bigint generated by default as identity,
created_at timestamp with time zone not null default now(),
content text null,
user_id uuid null,
constraint feedback_pkey primary key (id)
) tablespace pg_default;
创建策略
接下来,需要给feedback表创建1条策略,此策略通过 SELECT 操作为所有用户提供对表的读取访问权限。在“SQL执行器”页面,点击“新查询”按钮,新建一个SQL Query,执行以下操作:
CREATE POLICY "Enable read access for all users" ON "public"."feedback"
AS PERMISSIVE FOR SELECT
TO public
USING (true)
创建bucket
1.新建images存储桶
点击‘存储’图标菜单,点击‘创建新bucket’,创建images存储桶,存储桶是用来上传外卖小程序里面所有需要图片的物料。
注册小程序
以上是我们在MemFire Cloud上配置的全部步骤,接下来是在微信开发者工具上操作了。
如果您还未注册过小程序,请参考官方步骤注册小程序(只需要通过您的邮箱注册一个小程序获得一个appid,然后下载一个微信开发工具即可)
下载代码
git clone https://github.com/LucaRao/memfire-notepad.git
需要下载小程序sdk依赖的版本已经写在package.json文件里,直接下载即可
Node.js (>=14.x <=18.x) 。
用微信开发者工具点击导入项目
选择目录是下载好的小程序项目的目录,AppID为您在微信公众平台注册小程序获得的专属appid。
构建npm
在右侧详情里面的本地设置把“使用npm模块”和“不校验合法域名”勾上。
打开终端,在项目根目录下执行如下命令 (小程序需要的MemFire Cloud的微信小程序SDK已经存在package.json里,可以直接安装全局依赖)。
npm install
点击开发者工具中的菜单栏:工具 /构建 npm
这一步npm就构建完成了,我们需要的依赖也已经下载好了,根目录下会多出两个文件,如下图。
获取 API密钥
接下来需要创建一个可以访问应用程序数据的客户端,小程序使用了MemFire Cloud 微信小程序SDK包,使用他生态里提供的功能(登录、注册、增删改查等)去进行交互。创建一个可以访问微信小程序数据的客户端需要接口的地址(URL)和一个数据权限的令牌(ANON_KEY),我们需要去应用的首页去获取这两个参数然后配置到lib/supabase.js里面去。
lib/supabase.js
import { createClient } from 'supabase-wechat-stable-v2'
const url = ""
const key = ""
export const supabase = createClient(url, key)
回到MemFire Cloud首页,在应用/首页页面,获取服务地址以及token信息,只需要从首页中获取URL接口地址和anon的密钥。
Anon(公开)密钥是客户端API密钥。它允许“匿名访问”您的数据库,直到用户登录。登录后,密钥将切换到用户自己的登录令牌。这将为数据启用行级安全性。
编译小程序
点击“编译”即可展示小程序完成后的效果。