Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取自动生成的id的值我希望它们显示在我的recyclerview中_Java_Firebase_Firebase Realtime Database - Fatal编程技术网

Java 如何获取自动生成的id的值我希望它们显示在我的recyclerview中

Java 如何获取自动生成的id的值我希望它们显示在我的recyclerview中,java,firebase,firebase-realtime-database,Java,Firebase,Firebase Realtime Database,这是我的firebase数据库: 我想显示push方法给出的自动生成id的值 这是我的密码 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG

这是我的firebase数据库:

我想显示push方法给出的自动生成id的值

这是我的密码

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.activity_recycler_view);
    FirebaseApp.initializeApp(this);


    recyclerView = findViewById(R.id.recyclerview);
    recyclerView.setHasFixedSize(true);
    recyclerView.setLayoutManager(new LinearLayoutManager(this));

    String key = newRef.getKey();
    preRef.child(key).get();

    list = new ArrayList<>();
    myAdapter = new MyAdapter(this, list);
    recyclerView.setAdapter(myAdapter);
    preRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot snapshot) {
            for (DataSnapshot dataSnapshot : snapshot.getChildren()) {
                Calendar calendar = dataSnapshot.getValue(Calendar.class);
                list.add(calendar);
            }
            myAdapter.notifyDataSetChanged();
        }

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

        }
    });
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_全屏,WindowManager.LayoutParams.FLAG_全屏);
setContentView(R.layout.activity\u recycler\u视图);
FirebaseApp.initializeApp(本);
recyclerView=findViewById(R.id.recyclerView);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(新的LinearLayoutManager(本));
String key=newRef.getKey();
preRef.child(key.get();
列表=新的ArrayList();
myAdapter=新的myAdapter(此,列表);
recyclerView.setAdapter(myAdapter);
preRef.addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot snapshot snapshot){
对于(DataSnapshot DataSnapshot:snapshot.getChildren()){
Calendar Calendar=dataSnapshot.getValue(Calendar.class);
列表。添加(日历);
}
myAdapter.notifyDataSetChanged();
}
@凌驾
已取消公共void(@NonNull DatabaseError){
}
});
}

我无法显示Uid的值。有人能帮我吗?

要显示日期列表,您可以执行以下操作:

DatabaseReference actlogRef = FirebaseDatabase.getInstance().getReference("ActLog");
actlogRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot snapshot) {
        for (DataSnapshot dataSnapshot : snapshot.child("date").getChildren()) {
            String date = dataSnapshot.getValue(String.class);
            list.add(date);
        }
        myAdapter.notifyDataSetChanged();
    }

    @Override
    public void onCancelled(@NonNull DatabaseError error) {
        throw error.toException(); // never ignore errors
    }
});

为此,
list
必须是字符串列表,因为这是存储在数据库中的内容。如果必须使用
Date
对象列表,请查看有关的问题。

完全不相关,但如果要对日期进行排序,则将其存储为该格式将是一个问题。尝试yyyymmdd格式,因为它可以确保它们始终正确排序。