firebase实时数据库不能在移动设备上运行,但可以在模拟器上运行


binding.btSave.setOnClickListener {
val firstName = binding.etFirstName.text.toString()
val lastName = binding.etLastName.text.toString()
val age = binding.etAge.text.toString()
val userName = binding.etUserName.text.toString()
if (firstName.isNotEmpty() && age.isNotEmpty() && lastName.isNotEmpty() && userName.isNotEmpty()) {
try {
database =
FirebaseDatabase.getInstance("My Url")
.getReference("Users")
val users = User(firstName, lastName, age, userName)
database.child(userName).setValue(users).addOnSuccessListener {
binding.etAge.text.clear()
binding.etFirstName.text.clear()
binding.etLastName.text.clear()
binding.etUserName.text.clear()
Toast.makeText(this, "Successfully added", Toast.LENGTH_SHORT).show()
}.addOnFailureListener {
Toast.makeText(this, it.message, Toast.LENGTH_SHORT).show()
}
} catch (e: Exception) {
Toast.makeText(this, e.message, Toast.LENGTH_LONG).show()
} finally {
Toast.makeText(this, "finished", Toast.LENGTH_SHORT).show()
}
}
}

当我点击按钮时,它直接转到";最后";在移动设备中尝试捕获,但在模拟器中可以我允许该应用程序访问互联网和网络状态,该应用程序也能很好地进行身份验证

我该怎么办??

您是否在Manifest文件中添加了访问互联网的权限?调试器在没有此权限的情况下工作,但当您想要构建";生产";应用程序,它需要此权限才能工作。

你需要添加这两行:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

参考:https://developer.android.com/training/basics/network-ops/connecting

相关内容

最新更新