首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤振中Supabase数据的提取

颤振中Supabase数据的提取
EN

Stack Overflow用户
提问于 2022-02-12 13:08:24
回答 1查看 450关注 0票数 2

任何人都可以帮助我完成这个,我试图从Supabase中的一个表中获取数据,但是它在应用程序屏幕上显示了错误。

我想要构建一个应用程序,它可以在没有任何身份验证的情况下从Supabase读取数据,只从表中读取和显示数据,这里我只是在开始构建应用程序之前进行测试。

从应用程序的主页截图

My代码在main.dart

代码语言:javascript
复制
import 'package:flutter/material.dart';
import 'package:supabase_flutter/supabase_flutter.dart';

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Supabase.initialize(
    url: '[https://bougcsiwnimbmnmvwjlb.supabase.co]',
    anonKey: '[eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlhdCI6MTY0Mzc5NzQyOCwiZXhwIjoxOTU5MzczNDI4fQ.Ac5s-ZOyUV-2rRoP_GUuPvdt7tGNocCSq-LU-ZtBVqQ]',
  );
  runApp(const MyApp());
}


class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(

        primarySwatch: Colors.red,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}


class MyHomePage extends StatefulWidget {
  const MyHomePage({Key? key, required this.title}) : super(key: key);
  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}


// SuPabase
class _MyHomePageState extends State<MyHomePage> {

  Future<void> _getProfile(String name) async {
    late final _usernameController ;

  @override
  Future<Widget> build(BuildContext context) async {
    final response = await Supabase.instance.client
        .from('channels')
        .select()
        .single()
        .execute();
    if (response.error != null && response.status != null) {
      ScaffoldMessenger.of(context)
          .showSnackBar(SnackBar(content: Text(response.error!.message)));
    }
    if (response.data != null) {
      _usernameController = response.data!['name'] as String;
    }
    return Scaffold(
      appBar: AppBar(title: const Text('Profile')),
      body: ListView(
        padding: const EdgeInsets.symmetric(vertical: 18, horizontal: 12),
        children: [
          Text(_usernameController,
          ),
        ],
      ),
    );
  }
}

  @override
  Widget build(BuildContext context) {
    throw UnimplementedError();
  }
}

如果有人能帮忙的话,我真的很有胃口。

EN

回答 1

Stack Overflow用户

发布于 2022-05-19 05:00:49

我想我能找出几个你可能想要修复的地方。

首先,您想要删除您的Supabase URL和Supabase键周围的[],如下所示。

代码语言:javascript
复制
await Supabase.initialize(
    url: 'https://bougcsiwnimbmnmvwjlb.supabase.co',
    anonKey: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlhdCI6MTY0Mzc5NzQyOCwiZXhwIjoxOTU5MzczNDI4fQ.Ac5s-ZOyUV-2rRoP_GUuPvdt7tGNocCSq-LU-ZtBVqQ',
  );

此外,在小部件定义中,似乎出现了括号不匹配的情况。我认为这是你想要做的事情:

代码语言:javascript
复制
class _MyHomePageState extends State<MyHomePage> {
  String? name;
  Future<void> _getProfile() async {
    final response = await Supabase.instance.client
        .from('channels')
        .select()
        .single()
        .execute();
    if (response.error != null && response.status != null) {
      ScaffoldMessenger.of(context)
          .showSnackBar(SnackBar(content: Text(response.error!.message)));
    }
    if (response.data != null) {
      setState(() {
        name = response.data!['name'] as String;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Profile')),
      body: ListView(
        padding: const EdgeInsets.symmetric(vertical: 18, horizontal: 12),
        children: [
          name == null ? const Text('loading') : Text(name!),
        ],
      ),
    );
  }

  @override
  void initState() {
    _getProfile();
    super.initState();
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71092129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档