Java Firebase Android:获取存储在用户Id中的数据,然后将其转换为random Push().getKey()值

Java Firebase Android:获取存储在用户Id中的数据,然后将其转换为random Push().getKey()值,java,android,database,firebase,Java,Android,Database,Firebase,我之前的问题已经结束,并与其他一些相同的问题相关联,但没有一个问题涉及我的情况,我仍然需要一些帮助。他们链接到的帖子是: 然而,我仍在挣扎,希望有人能帮助我 正如您所看到的,它首先有一个用户ID,然后是随机键,然后是我想要获得的两个信息。当我试图获取信息时,我的应用程序不断崩溃 我当前正在执行的操作中的代码: onCreate auth = FirebaseAuth.getInstance(); user = auth.getCurrentUser(); databa

我之前的问题已经结束,并与其他一些相同的问题相关联,但没有一个问题涉及我的情况,我仍然需要一些帮助。他们链接到的帖子是:

然而,我仍在挣扎,希望有人能帮助我

正如您所看到的,它首先有一个用户ID,然后是随机键,然后是我想要获得的两个信息。当我试图获取信息时,我的应用程序不断崩溃

我当前正在执行的操作中的代码:
onCreate

auth = FirebaseAuth.getInstance();
    user = auth.getCurrentUser();


    databaseReference = FirebaseDatabase.getInstance().getReference();
之后:

  protected void onStart() {
    super.onStart();
    String userID = user.getUid();
    databaseReference.child(userID).child(databaseReference.push().getKey()).addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            for (DataSnapshot data : dataSnapshot.getChildren()){
                Author author = data.getValue(Author.class);
                authorList.add(author);
            }
            SavedQuotes savedQuotes = new SavedQuotes(ShowQuotes.this, authorList);
            list.setAdapter(savedQuotes);
        }

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

        }
    });
}
savedQuotes类包含以下信息:

public SavedQuotes(Activity activity, List<Author> authorQuotes){
    super(activity, R.layout.activity_saved_quotes, authorQuotes);
    this.activity = activity;
    this.authors = authorQuotes;
}

@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
    LayoutInflater inflater = activity.getLayoutInflater();
    View listView = inflater.inflate(R.layout.activity_saved_quotes, null, true);

    name = listView.findViewById(R.id.name);
    quotes = listView.findViewById(R.id.quote);

    Author author = authors.get(position);
    name.setText(author.getName());
    quotes.setText(author.getQuote());

    return listView;
}
publicsavedquotes(活动活动,列表authorQuotes){
超级(活动,R.layout.activity\u保存的\u引号,authorQuotes);
这个。活动=活动;
this.authors=authorQuotes;
}
@非空
@凌驾
公共视图getView(int位置,@Nullable视图convertView,@NonNull视图组父级){
LayoutInflater充气器=活动。getLayoutInflater();
View listView=充气机。充气(R.layout.activity\u saved\u quotes,null,true);
name=listView.findViewById(R.id.name);
quotes=listView.findViewById(R.id.quote);
Author=authors.get(位置);
name.setText(author.getName());
quotes.setText(author.getQuote());
返回列表视图;
}

我希望您能帮助我,请不要在这里使用
databaseReference.push().getKey()
。检查以下内容:

databaseReference = FirebaseDatabase.getInstance().getReference();

databaseReference.child(userID).addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
        for (DataSnapshot data : dataSnapshot.getChildren()){
            Author author = data.getValue(Author.class);
            authorList.add(author);
        }

        ...
    }

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

    }
});

非常感谢这很有帮助,我想我必须得到每一层