我需要帮助伙计们。我正在尝试从仅由用户插入的 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] 删除。
我来说两句