【发布时间】:2020-09-26 15:22:14
【问题描述】:
我正在尝试从我的 firebase 实时数据库中读取所有用户并将它们存储在数据库类中,从数据库中读取用户按预期工作,但是当我尝试从类外部访问用户时,它返回一个空列表. 这是我的数据库类
class Database {
private val database = FirebaseDatabase.getInstance();
var users = mutableListOf<User>()
init {
val valueEventListener = object : ValueEventListener {
override fun onDataChange(data: DataSnapshot) {
if (data.exists()){
for (child in data.children) {
val user = child.getValue(User::class.java)
users.add(user!!)
}
}
}
override fun onCancelled(data: DatabaseError) {
println("Error occurred while reading users data")
}
}
database.getReference("Users").addValueEventListener(valueEventListener)
}
fun writePerson(user:User) {
val users = database.getReference("Users")
users.child(user.firstname).setValue(user)
}
这是我尝试从我的数据库类访问用户的地方
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val database = Database()
val rafael = User("Rafael","Backx");
rafael.addPhoneNumber("0123456789")
database.writePerson(rafael)
val rafael2 = User("Rafael2","Backx");
rafael2.addPhoneNumber("012345678910")
database.writePerson(rafael2)
val users = database.users;
println(users.size)
for (child in users){
println(child)
}
}
这是我第一次使用 kotlin、android studio 和 firebase。
提前致谢
【问题讨论】:
-
Firebase API 是异步的。所以请查看this。
标签: android firebase kotlin firebase-realtime-database