【问题标题】:Use query with addValueEventListener使用带有 addValueEventListener 的查询
【发布时间】:2017-03-23 21:09:24
【问题描述】:

我正在尝试在我的 Android 应用程序中从 Firebase 获取特定数据。 在 onCreate 中,我定义了我的 DatabaseReference 和 ArrayList:

databaseRef = FirebaseDatabase.getInstance().getReference("books");
books = new ArrayList<>();

然后用数据填充我的 ListView:

 @Override
protected void onStart() {
    super.onStart();
    databaseRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {                
            books.clear();
            FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
            String uid = user.getUid();
            //iterating through all the nodes
            for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                Book bookrequest = postSnapshot.getValue(Book.class);
                books.add(bookrequest );
                }
            }
            BooksListing booksAdapter = new BooksListing(MainActivity.this, books);
            //attaching adapter to the listview
            listViewBooks.setAdapter(booksAdapter);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
}

现在我只想从 Firebase 获取具有我自己的 UID 的书籍。

type books {
  id: String;
  amount: Number;
  uid: uid;} 

在将数据传输到我的 Android 设备之前,我可以在哪里执行查询?

【问题讨论】:

    标签: android listview firebase firebase-realtime-database firebase-authentication


    【解决方案1】:

    试试这个:

    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
    String uid = user.getUid();
    
    databaseRef.orderByChild("uid").equalTo(uid)
        .addValueEventListener(new ... {
            ... onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
                    // here will only contain books that have
                    // uid equal to your user uid
                }
                ...
            }
            ...
        });
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2021-08-19
      • 1970-01-01
      • 1970-01-01
      • 2018-02-02
      • 2014-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多