如何显示用户(用户名)中的事件表(作者)? (使用Firebase的Android Studio)

时间:2019-06-01 09:15:57

标签: android firebase firebase-realtime-database

我创建了两个表

  1. Users,具有字段

    id

    用户名

  2. 事件,带有字段

    事件名称

    事件日期

    作者

我想显示作者名称基于Users(用户名)

所以我保存的作者是Users表(id)。

如果我修改Users(用户名)的值,则event(作者)的值 将会改变。谢谢

我尝试添加

User user = dataSnapshot.getValue(User.class);

event_author.setText(user.getUsername());

进入mUserDatabase

但是textViewEventAuthor没有显示任何单词。

public class EventList extends ArrayAdapter {

    private Activity context;
    private List<Event> eventList;



    DatabaseReference mUserDatabase;
    DatabaseReference databaseEvents;


    public EventList(Activity context, List<Event> eventList) {
        super(context, R.layout.event_list_view, eventList);
        this.context = context;
        this.eventList = eventList;




    }

    @NonNull
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        databaseEvents = FirebaseDatabase.getInstance().getReference("events");


        LayoutInflater inflater = context.getLayoutInflater();


        View listViewItem = inflater.inflate(R.layout.event_list_view,null, true);
        TextView event_name = listViewItem.findViewById(R.id.textViewEventName);
        TextView event_date = listViewItem.findViewById(R.id.textViewEventDate);
        TextView event_author = listViewItem.findViewById(R.id.textViewEventAuthor);


        Event event = eventList.get(position);



        event_name.setText(event.getEvent_name());
        event_date.setText(event.getEvent_date());
        event_author.setText(event.getAuthor());








        // ======================================================================//
        mUserDatabase = FirebaseDatabase.getInstance().getReference().child("Users");
        mUserDatabase.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
           User user = dataSnapshot.getValue(User.class);
                event_author.setText(user.getUsername());

            }

            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {

            }
        });

        // ======================================================================//


        return listViewItem;

    }
}

我希望输出是

lunch

25-6-2019

Louis

但是现在,我的输出是

lunch

25-6-2019

dNcgMLa4vTb9Zin2LrCr8mGr8Vp1

0 个答案:

没有答案