当前位置: 首页 > 知识库问答 >
问题:

如何检索所有的数据从firebase firestore作为一个管理的移动应用程序在Android Studio?

汲丰茂
2023-03-14

firestore中的用户集合

firestore中的管理集合

问题是如何以管理员的身份检索每个用户的数据(每个用户信息和票证信息都用他们的UID存储在Firestore的一个文件中,您可以参考上面的图片)。管理员帐户与用户在同一个Firebase项目中。该项目的目的是检索所有的用户信息和相关的票证信息,并使他们在管理方面的报告。如果你能帮忙,谢谢。

共有1个答案

关冠宇
2023-03-14

为了能够提供管理员访问来读取“users”和“ticket_information”集合中的数据,您必须使用Firestore安全规则。

假设您有适当的规则,为了能够从“users”集合中获取所有用户,允许使用它们相应的票证,请使用以下代码行:

FirebaseFirestore db = FirebaseFirestore.getInstance();
CollectionReference usersRef = db.collection("users");
usersRef.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            for (QueryDocumentSnapshot document : task.getResult()) {
                String email = document.getString("email");
                String fname = document.getString("fName");
                String uid = document.getId();
                DocumentReference uidRef = db.collection("ticket_information").document(uid);
                uidRef.get().addOnCompleteListener(new OnCompleteListener<DocumentSnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<DocumentSnapshot> task) {
                        if (task.isSuccessful()) {
                            DocumentSnapshot document = task.getResult();
                            if (document.exists()) {
                                String icPassport = document.getString("ic_passport");
                                String phone = document.getString("phone");
                                String ticketDate = document.getString("ticket_date");

                                Log.d(TAG, email + "/" + fname + "/" + icPassport + "/" + phone + "/" + ticketDate);
                            } else {
                                Log.d(TAG, "No such document");
                            }
                        } else {
                            Log.d(TAG, "get failed with ", task.getException());
                        }
                    }
                });
            }
        } else {
            Log.d(TAG, "Error getting documents: ", task.getException());
        }
    }
});

logcat中的结果将是:

jett@gmail.com/jett/1919191/191991919/9 Oct 2021
//...
 类似资料:
  • 我正在构建一个spring boot应用程序,它有多个数据源、实体管理器、事务管理器和数据库。每一个都是为一个客户提供的,并共享相同的DAO、服务。 数据源之间的切换工作得很好。但我对交易有问题 这里是我的配置: } 根据配置文件加载数据源。像LoadCust4DatasourceCondition之类的类用于检查是否加载。 我的数据源配置文件是: 我的服务就像: 我的刀是这样的: 在服务级别,如

  • 有没有办法从Firebase检索数据到一个Java应用程序? 我有一个Android应用程序,它将数据存储到一个Firebase数据库中,我需要在一个Java应用程序中读取这些数据。我在网上查了一下,但没有找到一个明确的答案。 //不是浏览器的URL,而是数据库上方的URL //这里我尝试引用数据库并在其中放入一个值

  • 我有一个Android应用程序和一个网络应用程序(托管在Firebase Hosting上)。Android 应用会生成数据并将其保存到 Firebase 实时数据库中。Android 应用和 Web 应用都可以查看数据。 从Firebase数据库生成数据PDF的最佳位置是哪里——Android应用程序还是Web应用程序(通过JavaScript,例如jsPDF)?它将保存在Firebase存储中

  • 我目前正在android studio中开发一个应用程序,因为我正试图在业余时间学习如何使用它,我的知识非常有限,所以我希望我能解释我的应用程序的概念,并向人们提供一些我可以使用的不同技术的建议。我的应用程序的基本思想是,它允许人们搜索名人,并显示他们的一些事实,他们的出生日期等。我知道它没有什么特别的,但它实际上是一个概念,可以帮助我提高我的android studio知识。 我的主要问题是以一

  • 问题内容: 当我想在Firebase服务器上创建时间戳,然后将其检索到本地客户端时,我想知道如何使用Firebase的ServerValue.TIMESTAMP方法。 在Firebase指南中,只有javascript对此情况进行了更详细的描述,但是我很难确定如何将其转换为我的Android应用程序。 提前致谢! 问题答案: 设置为(包含),告诉Firebase用服务器的时间填充该字段。当该数据被

  • 我正在开发两个应用程序。让第一个应用程序是APP1,第二个应用程序为APP2。现在在APP1中,我不提供任何用户权限,如INTERNET权限,但它将发送任何http url,如http://www.google.com我的第二个APP2将包含INTERNET等用户权限。Http请求将从APP1发送到APP2,APP2将响应该请求,然后将结果发送回APP1。最后APP1包含一个Web视图以显示结果。