我正在尝试将表数据流式传输到我的颤振应用程序中,但我不断收到一些错误。我正在尝试像使用 Firebase 那样做,但没有成功:(
有人可以指出我在这里做错了什么吗?
我的服务:
import 'package:demo_challenge/constants/db_connect.dart';
import 'package:demo_challenge/models/challenge_model.dart';
class SupabaseService {
Stream<ChallengeModel> getPosts() {
final response = supabase
.from('Table')
.stream()
.execute()
.listen((event) => ChallengeModel.fromJson(event /* 1st error */));
response.cancel();
return response /* 2nd error */;
}
}
我的流生成器:
import 'package:demo_challenge/models/challenge_model.dart';
import 'package:demo_challenge/services/supabase_servicel.dart';
import 'package:flutter/material.dart';
class HomeScreen extends StatefulWidget {
const HomeScreen({Key? key}) : super(key: key);
@override
_HomeScreenState createState() => _HomeScreenState();
}
class _HomeScreenState extends State<HomeScreen> {
final SupabaseService _service = SupabaseService();
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Demo Challenge'),
),
body: StreamBuilder<ChallengeModel>(
stream: _service.getPosts(),
builder: (context, snapshot) {
return Text(snapshot.data!.name);
}),
);
}
}
错误:
//1st error
The argument type 'List<Map<String, dynamic>>' can't be assigned to the parameter type 'Map<String, dynamic>'.
//2nd error
A value of type 'StreamSubscription<List<Map<String, dynamic>>>' can't be returned from the method 'getPosts' because it has a return type of 'Stream<ChallengeModel>'.