Android 如何获取Firebase数据库中记录的大小?
我是firebase的新手,我试图获取Android 如何获取Firebase数据库中记录的大小?,android,firebase-realtime-database,Android,Firebase Realtime Database,我是firebase的新手,我试图获取用户中的数据大小,其中用户有不同的记录,每个记录都有两个属性名称和联系人。我想在cont中获得记录的大小。我正试图在使用java的android应用程序中获得这个 数据库的结构如下所示 用户 Records Name Contact 我想获取记录的计数。使用值侦听器 FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference
用户中的数据大小,其中用户有不同的记录
,每个记录都有两个属性名称
和联系人
。我想在cont中获得记录的大小。我正试图在使用java的android应用程序中获得这个
数据库的结构如下所示
用户
Records
Name
Contact
我想获取记录的计数。使用值侦听器
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference();
//You can use the single or the value.. depending if you want to keep track
thismyRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snap: dataSnapshot.getChildren()) {
Log.e(snap.getKey(),snap.getChildrenCount() + "");
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
你所需要的就是
也看看这个
要获取计数,只有一行dataSnapshot.getChildrenCount()代码>
请参考下面的答案
ref.addListenerForSingleValueEvent(new ValueEventListener() { //ref will be your desired path where you want to count children
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.getValue() != null) { // Check for data snapshot has some value
dataSnapshot.getChildrenCount() // check for counts of data snapshot children
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
假设您的数据库结构如下所示:
Firebase-root
|
--- users
|
--- uidOne
| |
| --- name: "NameOne"
| |
| --- contact: "ContactOne"
|
--- uidTwo
|
--- name: "NameTwo"
|
--- contact: "ContactTwo"
要获取用户数,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference usersRef = rootRef.child("users");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
long count = dataSnapshot.getChildrenCount();
Log.d("TAG", "count= " + count);
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d(TAG, task.getException().getMessage()); //Don't ignore potential errors!
}
};
usersRef.addListenerForSingleValueEvent(valueEventListener);