如何将userID添加到firebase数据库,Android

时间:2017-09-16 12:08:11

标签: android firebase firebase-realtime-database

我正在开发一个活动应用,用户可以将自己添加到现有的活动中。

App:

单击+ Add me时,userID将被添加到数据库中。

Firebase DB

我有一个适配器和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) {

                    }
                });

            }

        }
    }

上面的代码只是将UID添加到第一个节点中。 Database

我不确定我是使用正确的方法还是正确的代码。我只是希望多个用户能够点击+添加我,这反过来会将它们添加到子节点'成员'中但最重要的是,只有他们点击的事件+在卡片视图中添加我。 希望我自己清楚。 真的很感激我的特殊问题的一些帮助。

Member's DB

我认为我最终必须使用各种类型的散列图,但我只是想看看我是否在正确的轨道上。

1 个答案:

答案 0 :(得分:0)

我做了一个变通办法,使我能够收集用户ID:

在非常高的水平上:

我附加了一个文本框,并将其值保留为隐藏,

点击后,我从ui中收集了用户ID,并将其发射到了Firebase dtabase中!