Firebase 实时数据库仅使用用户 ID 检索数据

麦泽尔

我需要帮助伙计们。我正在尝试从仅由用户插入的 firebase 数据库中检索数据。我设法让用户将他的 ID 与他的数据一起发送,现在我只想获取他的数据。

这是代码

 public View onCreateView(@NonNull LayoutInflater inflater,
                             ViewGroup container, Bundle savedInstanceState) {
        homeViewModel =
                ViewModelProviders.of(this).get(HomeViewModel.class);
        View root = inflater.inflate(R.layout.fragment_home, container, false);

        mUploads = new ArrayList<>();


        mStorage = FirebaseStorage.getInstance();

        fAuth = FirebaseAuth.getInstance();

        final String id = fAuth.getCurrentUser().getUid();

        final Upload u = new Upload();

        mDatabaseRef = FirebaseDatabase.getInstance().getReference("uploads");

        //Query query = mDatabaseRef.child("").equalTo("-MUiNO146Q64ztT_kY9y");

     
        mDBListener = mDatabaseRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {

                mUploads.clear();
                Upload upload2 = dataSnapshot.getValue(Upload.class);

                    for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                        Upload upload = postSnapshot.getValue(Upload.class);
                        //Toast.makeText(getContext(), id, Toast.LENGTH_LONG).show();
                            upload.setKey(postSnapshot.getKey());
                            mUploads.add(upload);

                    }







                mAdapter.notifyDataSetChanged();

                mProgressCircle.setVisibility(View.INVISIBLE);
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {
                Toast.makeText(getActivity(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();
                mProgressCircle.setVisibility(View.INVISIBLE);
            }
        });



        return root;
    }

此图显示了数据库的结构

数据库的结构

弗兰克·范·普费伦

注释掉的代码就快到了。

您正在寻找的是一个查询,它允许您订购/过滤数据在您的情况下,您可以通过以下方式获取当前用户的上传:

if (FirebaseAuth.getInstance().getCurrentUser() != null) {
  String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();

  mDatabaseRef = FirebaseDatabase.getInstance().getReference("uploads");
  Query query = mDatabaseRef.orderByChild("id").equalTo(uid);
 
  mDBListener = query.addValueEventListener(new ValueEventListener() {
      ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从Firebase实时数据库检索单个数据

如何从Firebase实时数据库中检索用户名

Firebase实时数据库值检索

如何从Firebase中的实时数据库检索数据?

Firebase:从实时数据库中检索childByAutoID

在Android中从Firebase实时数据库检索数据

如何使用Kotlin从Firebase实时数据库检索数据

通过Firebase数据库按ID检索对象

从Firebase实时数据库检索数据到ListView

如何从Firebase实时数据库检索数据?

如何在firebase auth和firebase-实时数据库中获得相同的ID?

如何使用随机生成的ID将现有数据更新到Firebase实时数据库中的数据

从Firebase检索特定用户的实时数据

使用Angular检索Firebase实时数据

使用选项从Firebase实时数据库中检索MCQ数据

使用用户ID从Firebase获取数据

Firebase用户ID变量以检索数据

如何从 Firebase 实时数据库正确检索值?

从 Firebase 实时数据库中检索子数据

无法使用 FIrebase 实时数据库通过他的电子邮件检索好友密钥

从 Firebase 实时数据库中检索好友

如何在不登录的情况下从 firebase 实时数据库获取用户 ID(UID)

无法从 Firebase 实时数据库中检索数据

Firebase 实时数据库:无法从 Firebase 数据库发送或检索数据

从 Firebase 实时数据库中检索数据

如何使用 AngularFire 从 Firebase 数据库中检索 ID

使用 Firebase 实时数据库时删除自动生成的 ID

从 Firebase 检索用户 ID 下的数据

Firebase 实时数据库检索空值