最是人间留不住,朱颜辞镜花辞树。这篇文章主要讲述如何在Firebase中获取用户数作为计数在android TextView中相关的知识,希望能为你提供帮助。
【如何在Firebase中获取用户数作为计数在android TextView中】
根据图片,数据库有一个用户,因此它应该在loginactivity角落的textview中给出1号,根据新用户条目它应该增加
答案尝试以下代码,如果您希望计数每次都增加,当数据库中的新用户输入时,最好使用ChildEventListener
。
int studentCounter = 0;
// declare int variableTextView tv_counter = (TextView) findViewById(R.id.tv_counter);
DatabaseReference mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("student");
mDatabaseReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {studentCounter = studentCounter + 1;
//Convert counter to string
String strCounter = String.valueOf(studentCounter);
//Showing the user counter in the textview
tv_counter.setText(strCounter);
}@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {}@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {}@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {}@Override
public void onCancelled(DatabaseError databaseError) {}
});
另一答案试试这个。使用这个我的答案是1名学生。但我只读了一次。如果我添加其他学生,则在活动更新之前,计数器不会更改。
TextView yourTextView = (TextView) findViewById(R.id.yourTextView);
Database database = FirebaseDatabase.getInstance();
DatabaseReferencestudentsRef = database.getReference("student");
studentsRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {int counter = (int) dataSnapshot.getChildrenCount();
//Convert counter to string
String userCounter = String.valueOf(counter);
//Showing the user counter in the textview
yourTextView.setText(userCounter);
}@Override
public void onCancelled(DatabaseError databaseError) {}
});
但是如果你想拥有实时计数器,你应该将addListenerForSingleValueEvent改为addValueEventListener,就像这样......
studentsRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {int counter = (int) dataSnapshot.getChildrenCount();
//Convert counter to string
String userCounter = String.valueOf(counter);
//Showing the user counter in the textview
yourTextView.setText(userCounter);
}@Override
public void onCancelled(DatabaseError databaseError) {}
});
使用最后一个代码,当我进入一个新学生时,我的计数器将立即更改,如果我删除了一个学生,我的计数器也会立即改变。
推荐阅读
- Android(从运行时生成的文本字段中将数据保存到Firebase)
- 从Firebase实时数据库读取Android数据并在RecyclerView上显示
- 带有范围的Android Firebase查询(上方,中间,下方)
- 类'test_coredataAppDelegate'的重复接口声明
- 如何在Kali Linux中通过TOR路由所有机器流量
- 如何解决VirtualBox MacOS Mojave 10.14.3中的”无法连接到服务器” Mac App Store错误
- XAMPP虚拟主机可在Chrome和Firefox中使用,但不适用于Microsoft Edge浏览器
- 在Kali Linux中执行不定长度的真正的lololoris攻击(SlowHTTP)
- 如何解决Kali Linux CLI错误(无法获取锁/var/lib/dpkg/lock –打开(9:资源暂时不可用))