0

我想为 20k+ 学生创建一个修订/考试应用程序。我将每天为我的应用程序的所有学生(用户应用程序)进行测试。然后将他们的记录(分数)作为总分存储在云 Firestore 上。所以我的问题是我想通过他们的分数显示学生的排名顺序(同时对他们的总分进行排序)。因此,如果一个学生去排名页面查看排名靠前的学生,该应用程序将调用 20k 文档按他们的总分降序排列,

     body: StreamBuilder(
          stream: FirebaseFirestore.instance
              .collection('Users')
              .doc('Students')
              .collection('Regions')
              .doc('regionName')
              .collection('Districts')
              .doc('DIstrictName')
              .collection('Student_Phone')
              .orderBy('Total_Marks', descending: true)
               //time registered students
              .orderBy('Created', descending: false)  the right one
             
              .snapshots(),
          builder: (BuildContext context, snapshot) {

           return ListView.builder(
                    itemCount: snapshot.data.docs.length,
                    itemBuilder: (context, index) {
                    
                      return showUsers(
                        index: index,
                        snapshot: stuSnapShot.data.docs[index],
                      );
                    });
       .......}

除了我必须向学生显示“我的分数页面”以向他展示他的排名之外,这还需要检索 20k 文档以迭代使用它。

    class showUsers extends StatefulWidget {
       var snapshot;
      final int index;
      showUsers({@required this.snapshot, @required this.index});
       @override
      _showUsersState createState() => _showUsersState();
     }

   class _showUsersState extends State<showUsers> {
    @override
    Widget build(BuildContext context) {

    var numNum = widget.snapshot.data()['PhoneNumber'].toString();
      if (numNum == '+8977106429') {
 
          return Container(
             child: Text(
              'you are :${widget.index}  phone =$numNum',
              style: TextStyle(
                color: Colors.red, fontSize: 16, fontWeight: FontWeight.bold),
              ),
             );
            } 
           }
          }

. 当 20,000 个学生每天阅读 20,000 个文档时,Firebase 云 Firestore 定价将花费大量资金 20,0000 X 20,000= 400,0000,0000 ==400m 每天阅读,这将花费 = 每天 720 美元,相当于 30 X 720 美元=21,600 美元。那么有没有另一种方法来阅读这些文件而无需花费这些费用?

4

0 回答 0