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

如何检索特定用户的firebase数据库?

南宫凯康
2023-03-14

当我试图检索recycleview中保存的数据时,它们显示的是所有用户的数据,而不是登录的用户。有人能帮忙吗?

btn3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            FirebaseUser firebaseUser = firebaseAuth.getCurrentUser();
            String uid = firebaseUser.getUid();
            databaseReference = FirebaseDatabase.getInstance().getReference("Registration Data1").child(uid);
            databaseReference.addValueEventListener(new ValueEventListener() {
                @Override
                public void onDataChange(@NonNull DataSnapshot snapshot) {
                    String sp1 = spinner.getSelectedItem().toString();
                    String sp2 = spinner2.getSelectedItem().toString();
                    String sp3 = spinner3.getSelectedItem().toString();

                    Data DBdata = new Data(sp1,sp2,sp3,uid);
                    databaseReference.setValue(DBdata);
                    //Toast.makeText(this,"Data Added",Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onCancelled(@NonNull DatabaseError error) {

                }
            });'

共有1个答案

柯星辰
2023-03-14

这是我在Firestore中使用的东西,它对我来说很好,您可以尝试一下,或者尝试一下类似的实时数据库。

代码

user= FirebaseAuth.getInstance().getCurrentUser();
                firestore=FirebaseFirestore.getInstance();

                Task<DocumentSnapshot> doc = firestore.collection("users").document(user.getUid()).get();
                doc.addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
                    @Override
                    public void onSuccess(DocumentSnapshot documentSnapshot) {
                        DocumentSnapshot res=doc.getResult();
                        String x= (String) res.get("name");
                        emailTextField.setText((String)res.get("email"));
                        ageTextField.setText((String)res.get("age"));
                        nameTextField.setText(x);
                 
                    }
                });
 类似资料:
  • 问题内容: 目前,我一直在研究FireBase,并且一直在使用AngularJS插件,并且发现了以下我无法解决的问题。 我目前已经实现了简单的登录系统。注册后使用我的邮件和密码登录,我创建了这样的帖子: 从这一点来看,一切都很好。现在,我想做的是在firebase上的posts / endpoint中,我只想显示当前登录用户的帖子。 其他用户可以通过使用公共布尔变量来阅读其他人的信息(但这将在以后

  • 请帮助我想从Firebase实时数据库检索一个特定的数据,我有2个用户,教授和学生,我想使用该数据进行验证。 FireBase实时数据库 FireBase实时数据库

  • 我试图创建一个简单的程序,从用户的名字,手机号码和电子邮件地址,然后把数据在Firebase实时数据库。 有3个输入框和一个按钮,按一下就可以完成上面的操作。代码如下: 我这样设置了消防基地:

  • 我正在尝试构建一个使用数据库的应用程序,允许用户以管理员或员工身份登录 管理员几乎没有选项: 添加新员工, 列出所有员工和 为选定员工添加待办事项 受雇者 登录时显示待办事项 我遇到的第一个问题是: 我应该为所有记录(员工)只创建一个表吗 第二个问题是,我不知道如何为成功登录的用户显示项目列表。如何访问登录用户的数据?

  • firebase数据库最近的更新似乎有一些变化。我的项目在firebase\u数据库:^7.0.0版本下运行良好,但在firebase数据库的更新版本中,我无法更新项目代码。 以下是v7的工作版本 firebase\u数据库^9.0.12上的同一代码出现错误。我收到的错误在`(DataSnapShot snap)async{…}上错误是 无法将参数类型“Future Function(DataSn

  • 我正试图从Firebase实时数据库中检索当前登录用户的配置文件数据。我已经通过电子邮件和密码验证了我的用户。然后,我将注册数据保存在数据库中,作为一个对象,如下所示:(所有这些代码都在SignUpActivity中的onCreate中)。我将数据保存为用户对象。我的用户模型类有getter和setter,参数化和空白构造函数。 因此,mUserId是经过身份验证的用户的用户ID。我的数据库结构如