У меня есть список пользователей с их оценкой, и я хочу создать живую таблицу лидеров, когда меняется какой-либо счет или добавляется новый пользователь в рейтинге. В пакете Firebase_database flutter есть методы для onChildAdded
, onChildChanged
, но что если я захочу создать эту таблицу лидеров, где некоторые пользователи будут существовать до начала соревнования и у них будет некоторый счет. Как я могу создать таблицу лидеров в реальном времени? Мой базовый c код на данный момент.
Функция определена в user
провайдере.
Stream getAllUsers() {
return rtdb.child('ranks').orderByChild('score').onValue;
}
Leaderboard.dart
import 'package:dating_app/providers/user.dart';
import 'package:dating_app/widgets/loader.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class LeaderBoard extends StatefulWidget {
@override
_LeaderBoardState createState() => _LeaderBoardState();
}
class _LeaderBoardState extends State<LeaderBoard> {
@override
Widget build(BuildContext context) {
return Container(
child: StreamBuilder(
stream: Provider.of<User>(context, listen: false).getAllUsers(),
builder: (context, snapshot){
if(!snapshot.hasData){
return Loader();
}else{
print(snapshot.data);
return Text('Hello World');
}
},
),
);
}
}