Hi guys,
I am trying to use realtime API with stream builder. It works but the issue is on the first load it shows nothing. When I change value from the backend it builds the ui.
`/// Account Stream
Stream<RealtimeMessage> userStream() { final realtime = Realtime(client); RealtimeSubscription subscription = realtime.subscribe(['account']); return subscription.stream; }`
`/// Account Screen
class AccountScreen extends StatefulWidget { const AccountScreen({super.key});
static const routeName = '/account-screen';
@override State<AccountScreen> createState() => _AccountScreenState(); }
class _AccountScreenState extends State<AccountScreen> { final seafarerStream = AppwriteAuthService.instance.userStream(); @override void initState() { seafarerStream; super.initState(); }
@override Widget build(BuildContext context) {
return Scaffold(
appBar: const EzAppBar(
title: 'Account',
isPage: 'account',
),
body: EzStream(
stream: seafarerStream,
onData: (data) {
final doc = data.payload;
return EzText(
text: doc['name'].toString(),
fontWeight: FontWeight.w700,
);
},
));
} } `
How to load data on first load with stream builder....?
Kindly assist. Thank you
You will need to get the document or thing manually first time
As you would have done without realtime
As @D5 said, you need to fetch the user account details via account.get() to show initial data.
Realtime event is only fired when a data on the observing channel changes. It doesn't do a fetch on connect.
Thank you @darShan & @D5 Will try that. Was expecting to work like firebase
[SOLVED] Realtime API and stream builder
Recommended threads
- [SOLVED] Appwrite 25.1.0 returns Invalid...
I've already opened an issue on GitHub, but somewhat it doesn't seem like GitHub is monitored very closely, so I'm leaving a bug report here on Discord as well....
- listRows result parsing issue
I'm using Appwrite Dart SDK "24.2.0". When I perform a listRows call in dart, I have this reponse in JSON: in " Future<models.RowList> listRows()" { "total" :...
- Broken Flutter SDK >=24.1.0
Row.fromMap now does: ``` data: Map<String, dynamic>.from(map["data"] ?? {}) ``` But Appwrite Cloud TablesDB row responses return custom row columns flattene...