android - RecyclerView 的 Firebase 查询
问题描述
我想得到“朋友”的第一个孩子/孩子的日期。为此,我将查询写为
Query query = FirebaseDatabase.getInstance()
.getReference()
.child("Friends").child("SQyOq80egYehjqx4sgiyeNcW8P02");
在上面的查询中,我想具体获取“SQyOq80egYehjqx4sgiyeNcW8P02”的日期。我怎样才能做到这一点?上面的查询不起作用。
我以前用这段代码写过这些值:
final String currentDate = DateFormat.getDateInstance().format(new Date());
mFriendDatabase.child(mCurrent_user.getUid()).child(user_id).setValue(currentDate)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
mFriendDatabase.child(user_id).child(mCurrent_user.getUid()).setValue(currentDate)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
mFriendReqDatabase.child(mCurrent_user.getUid()).child(user_id).removeValue().addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
mFriendReqDatabase.child(user_id).child(mCurrent_user.getUid()).removeValue().addOnSuccessListener(new OnSuccessListener<Void>() {
@Override
public void onSuccess(Void aVoid) {
mProfileSendReqBtn.setEnabled(true);
mCurrent_state = "friends";
mProfileSendReqBtn.setText("UnFriend");
mDeclineBtn.setVisibility(View.INVISIBLE);
mDeclineBtn.setEnabled(false);
}
});
}
});
}
});
}
});
}
回收站代码:
FirebaseRecyclerOptions<Friends> options =
new FirebaseRecyclerOptions.Builder<Friends>()
.setQuery(query, Friends.class)
.build();
Log.d("sdfsdfsdf", options.getSnapshots().toString());
firebaseRecyclerAdapter = new FirebaseRecyclerAdapter<Friends, FriendsViewHolder>(options) {
@Override
public FriendsViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
// Create a new instance of the ViewHolder, in this case we are using a custom
// layout called R.layout.message for each item
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.adapter_users_activity_layout, parent, false);
return new FriendsViewHolder(view);
}
@Override
protected void onBindViewHolder(final FriendsViewHolder friendsViewHolder, int position, Friends friends) {
// Log.d("sdfsdfdf", friends.getDate().toString());
friendsViewHolder.setDate(friends.getDate());
解决方案
如果你想找到一些价值使用Query
Query applyQuery = ref.child("Friends").orderByChild("Wed5qPTC.....").equalTo("Value for Check");
applyQuery.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snap: dataSnapshot.getChildren()) {
//You will get your value in snap
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.e("Realtime", "onCancelled", databaseError.toException());
}
});
推荐阅读
- php - 如果帖子由 Wordpress 中的作者用户角色撰写,则显示文本
- javascript - 制作需要帮助 - 会员只能在票务频道中使用命令
- python - 如何遍历python中的目录树以及扩展名为.py或.txt的文件将它们添加到zipfile中。?
- clojure - 如何重命名 clojure 文件和命名空间
- python - 如何将带有字数的列表转换为字典
- javascript - 为什么 nodejs 加密签名功能只接受 privateKey pem 格式?
- python-3.x - Anaconda 环境修复
- c++ - 如何使用 fout 实现 setprecision
- bootstrap-4 - bootstrap 4 nav tabs 左右外部控制
- kotlin - 在特定文件中强制执行 Ktlint NoVar 规则