Flutter
...
Authentication
在Flutter中使用Parse进行用户查询的技术指南
10 分
在flutter中查询parse用户 介绍 一些应用程序需要直接管理用户或能够查看用户列表。parse具有查询工具,可以用来列出您应用程序的用户。 在本指南中,您将学习如何使用parsequery在您的flutter应用程序中执行用户查询,使用 parse server的flutter插件 。 目标 构建一个使用parse的flutter应用程序的用户查询功能。 前提条件 要完成本教程,您需要: https //flutter dev/docs/get started/install https //developer android com/studio 或 https //code visualstudio com/ (带有 https //docs flutter dev/get started/editor dart 和 flutter) 一个在 back4app 上 https //www back4app com/docs/get started/new parse app : 注意: 请遵循 https //www back4app com/docs/get started/new parse app 以了解如何在 back4app 上创建 parse 应用。 一个连接到 back4app 的 flutter 应用。 注意: 请遵循 https //www back4app com/docs/flutter/parse sdk/parse flutter sdk 以创建一个连接到 back4app 的 flutter 项目。 一台运行 android 或 ios 的设备(或虚拟设备)。 理解查询用户应用 为了更好地理解查询用户的过程,我们将创建一个应用来进行查询。我们不会解释 flutter 应用程序代码,因为本指南的主要重点是使用 flutter 和 parse。 按照接下来的步骤,您将构建一个 todo 应用程序,该应用程序将在 back4app 数据库中存储任务。 让我们开始吧! 按照接下来的步骤,您将能够构建一个注册应用程序,该应用程序将在 back4app 数据库中创建用户帐户。 1 创建查询用户应用模板 打开您之前指南中的 flutter 项目 flutter 插件用于 parse 服务器 。转到 main dart main dart 文件,清理所有代码,并用以下内容替换它: 1 import 'dart\ async'; 2 3 import 'package\ flutter/material dart'; 4 import 'package\ parse server sdk flutter/parse server sdk dart'; 5 6 void main() async { 7 widgetsflutterbinding ensureinitialized(); 8 9 final keyapplicationid = 'your app id here'; 10 final keyclientkey = 'your client key here'; 11 final keyparseserverurl = 'https //parseapi back4app com'; 12 13 await parse() initialize(keyapplicationid, keyparseserverurl, 14 clientkey keyclientkey, debug true); 15 16 runapp(materialapp( 17 home home(), 18 )); 19 } 20 21 class home extends statefulwidget { 22 @override 23 homestate createstate() => homestate(); 24 } 25 26 class homestate extends state\<home> { 27 final scaffoldkey = globalkey\<scaffoldstate>(); 28 29 @override 30 widget build(buildcontext context) { 31 return scaffold( 32 appbar appbar( 33 title text("parse query users"), 34 backgroundcolor colors blueaccent, 35 centertitle true, 36 ), 37 key scaffoldkey, 38 body futurebuilder\<list\<parseobject>>( 39 future douserquery(), 40 builder (context, snapshot) { 41 switch (snapshot connectionstate) { 42 case connectionstate none 43 case connectionstate waiting 44 return center( 45 child container( 46 width 100, 47 height 100, 48 child circularprogressindicator()), 49 ); 50 default 51 if (snapshot haserror) { 52 return center( 53 child text("error ${snapshot error tostring()}"), 54 ); 55 } else { 56 if (snapshot data! isempty) { 57 return center( 58 child text('none user found'), 59 ); 60 } 61 62 return listview\ builder( 63 padding edgeinsets only(top 10 0), 64 itemcount snapshot data! length, 65 itembuilder (context, index) { 66 final user = snapshot data!\[index] as parseuser; 67 final userverified = user emailverified ?? false; 68 return listtile( 69 title text( 70 'username ${user username} verified ${userverified tostring()}'), 71 subtitle text(user createdat tostring()), 72 ); 73 }); 74 } 75 } 76 })); 77 } 78 79 future\<list\<parseobject>> douserquery() async { 80 return \[]; 81 } 82 } 83 当 调试 调试 参数在函数 parse() initialize parse() initialize 为 true true , 允许在控制台上显示 parse api 调用。此配置可以帮助调试代码。建议在发布版本中禁用调试 2 将模板连接到 back4app 项目 在您的应用程序仪表板中找到您的应用程序 id 和客户端密钥凭据,网址为 https //www back4app com/ 在 main dart main dart 中更新您的代码,使用您在 back4app 中项目的 applicationid 和 clientkey 的值。 keyapplicationid = 应用程序 id keyclientkey = 客户端密钥 运行项目,应用程序将如图所示加载。 3 查询用户的代码 任何 parse 查询操作都使用 parsequery parsequery 对象类型,这将帮助您在应用程序中从数据库中检索特定数据。 一个 parsequery parsequery 只有在调用检索方法后才会解析,因此您可以设置查询并在提交检索方法之前链接其多个修饰符。 要创建一个新的 parsequery parsequery ,您需要将所需的 parseobject parseobject 子类作为参数传递,这将包含您的查询结果。 您可以在下面看到一个用户查询示例。使用提供的代码,在文件中找到 douserquery douserquery 函数 main dart main dart 。用以下内容替换 douserquery douserquery 中的代码 1 querybuilder\<parseuser> queryusers = 2 querybuilder\<parseuser>(parseuser forquery()); 3 final parseresponse apiresponse = await queryusers query(); 4 5 if (apiresponse success && apiresponse results != null) { 6 return apiresponse results as list\<parseobject>; 7 } else { 8 return \[]; 9 } 要构建此功能,请按照以下步骤操作 创建一个实例的 parsequery parsequery 类并作为参数传递给 parseuser forquery parseuser forquery 调用 query query 函数,该函数将对数据库执行查询。 如果操作成功,将返回一个 parseuser parseuser 对象的列表。如果操作未找到任何对象,成功属性将为 false,结果为 null。 完整的代码应该如下所示 1 future\<list\<parseobject>> douserquery() async { 2 querybuilder\<parseuser> queryusers = 3 querybuilder\<parseuser>(parseuser forquery()); 4 final parseresponse apiresponse = await queryusers query(); 5 6 if (apiresponse success && apiresponse results != null) { 7 return apiresponse results as list\<parseobject>; 8 } else { 9 return \[]; 10 } 11 } 您还可以尝试使用以下结构检索单个用户 user? get("username"); 要测试它,请单击 android studio/vscode 中的 运行 运行 按钮。 执行此查询后,您的应用中的用户列表应显示如下内容 完成了! 在本指南的最后,您学习了如何在 flutter 上对 parse 用户执行查询。