应用实战|只需几步,即可享有问答社区小程序

145 阅读4分钟

应用实战|只需几步,即可享有问答社区小程序

本示例小程序是一个模仿知乎的简约小程序,小程序的后端服务使用了MemFire Cloud,其中使用到的MemFire Cloud功能包括:

  • 云数据库:存储小程序所有数据表的信息
  • 即时API:创建数据表时会自动生成 API
  • 对象存储:存储小程序中物料的图片

图片

创建应用

目的:通过创建的一个MemFire Cloud应用来获得数据库、对象存储等一系列资源,并将获得该应用专属的API访问链接和访问密钥,用户可以轻松的调用API接口**与以上资源进行交互。

登录MemFire Cloud, 在“我的应用”页面创建一个新应用

img_v3_02a8_3660ad20-7080-4ba6-b412-43e2b7f3877g.jpg

创建数据表

创建 feed_list 表

在“表编辑器”页面,点击“新建表”,创建feed_list 表。feed_list 表主要记录小程序的问答信息,表结构字段如下:

名称类型描述
question_idbigint主键,自动为列分配一个连续的唯一编号,唯一标识ID
create_timetimetamptz创建时间
answer_idbigint回答者的id
feed_source_idbigint问题来源id
feed_source_nametext问题提出者名字
feed_source_txttext问题标题
feed_source_imgtext问题提出者的头像
questiontext问题内容
answer_ctnttext回答内容
good_numtext赞同数
comment_numtext评论数
typetext问题类型

sql建表语句

create table
  public.feed_list (
    question_id bigint generated by default as identity,
    created_at timestamp with time zone not null default now(),
    answer_id bigint null,
    feed_source_id bigint null,
    feed_source_name text null,
    feed_source_txt text null,
    feed_source_img text null,
    question text null,
    answer_ctnt text null,
    good_num text null,
    comment_num text null,
    type text null,
    constraint feed_list_pkey primary key (question_id)
  ) tablespace pg_default;

创建策略

接下来,需要给feed_list表创建1条策略,此策略通过 SELECT 操作为所有用户提供对表的读取访问权限。在“SQL执行器”页面,点击“新查询”按钮,新建一个SQL Query,执行以下操作:

CREATE POLICY "Enable read access for all users" ON "public"."feed_list"
AS PERMISSIVE FOR SELECT
TO public
USING (true)

创建bucket

1.新建 images 存储桶

点击‘存储’图标菜单,点击‘创建新bucket’,创建images存储桶,存储桶是用来上传外卖小程序里面所有需要图片的物料。

image.png

注册小程序

以上是我们在MemFire Cloud上配置的全部步骤,接下来是在微信开发者工具上操作了。如果您还未注册过小程序,请参考官方步骤(developers.weixin.qq.com/miniprogram…)

下载代码

git clone https://github.com/LucaRao/wechat-fangzhihu.git

需要下载小程序sdk依赖的版本已经写在package.json文件里,直接下载即可

Node.js (>=14.x <=18.x) 。

用微信开发者工具点击导入项目

选择目录是下载好的小程序项目的目录,AppID为您在微信公众平台注册小程序获得的专属appid。

image.png

image.png

构建npm

在右侧详情里面的本地设置把“使用npm模块”和“不校验合法域名”勾上。

打开终端,在项目根目录下执行如下命令 (小程序需要的MemFire Cloud的微信小程序SDK已经存在package.json里,可以直接安装全局依赖)。

npm install

点击开发者工具中的菜单栏:工具 /构建 npm

image.png

这一步npm就构建完成了,我们需要的依赖也已经下载好了,根目录下会多出两个文件,如下图。

image.png

获取 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的密钥。

image.png

Anon(公开)密钥是客户端API密钥。它允许“匿名访问”您的数据库,直到用户登录。登录后,密钥将切换到用户自己的登录令牌。这将为数据启用行级安全性。

编译小程序

点击“编译”即可展示小程序完成后的效果

image.png

MemFireDB

产品资料

MemFire Cloud

平台入口:memfiredb.com

文档地址:docs.memfiredb.com