我正在开发一个活动应用,用户可以将自己添加到现有的活动中。
单击+ Add me时,userID将被添加到数据库中。
我有一个适配器和POJO类链接UI。但我对.setValue()命令应该在哪里感到困惑。 我把它放在适配器中,它只是将成员id发送给第一个孩子。
public static class EventViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
FirebaseUser current_user = FirebaseAuth.getInstance().getCurrentUser();
String uid = current_user.getUid();
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference().child("Members").child(uid);
DatabaseReference eventRef = FirebaseDatabase.getInstance().getReference().child("Events").child("lists");
public EventViewHolder(View itemView) {
super(itemView);
addMe = (TextView) itemView.findViewById(R.id.add_me);
addMe.setOnClickListener(this);
@Override
public void onClick(final View v) {
if (v.getId() == addMe.getId()) {
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
final String uName = dataSnapshot.child("member").getValue().toString();
addMe.setText(uName);
int position = 0;
eventRef.child(mListl.get(position).getId()).child("members").setValue(uid);
Snackbar snackbar = Snackbar
.make(v, "You have been added to the event!", Snackbar.LENGTH_LONG)
.setAction("- Remove me", new View.OnClickListener() {
@Override
public void onClick(final View view) {
Snackbar snackbar1 = Snackbar.make(v, "You have been removed from the event!", Snackbar.LENGTH_SHORT);
snackbar1.show();
}
});
snackbar.show();
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
}
我不确定我是使用正确的方法还是正确的代码。我只是希望多个用户能够点击+添加我,这反过来会将它们添加到子节点'成员'中但最重要的是,只有他们点击的事件+在卡片视图中添加我。 希望我自己清楚。 真的很感激我的特殊问题的一些帮助。
我认为我最终必须使用各种类型的散列图,但我只是想看看我是否在正确的轨道上。
答案 0 :(得分:0)
我做了一个变通办法,使我能够收集用户ID:
在非常高的水平上:
我附加了一个文本框,并将其值保留为隐藏,
点击后,我从ui中收集了用户ID,并将其发射到了Firebase dtabase中!