我正在学习在Android Studio(科特林)中开发android应用。我在YourTube视频的帮助下编写了一些代码,而我的代码是通过Firebase数据库添加一些价值。我的代码已成功编译,并在手机(不是模拟器)上安装了该应用程序,当我单击该按钮时,没有任何反应。 我的数据库未更新。我创建了多个Toast,以查看未执行代码的哪一部分,但是,出乎意料的是,执行Toast前后的代码却没有显示Toast消息。我不知道烤面包出了什么问题。
我正在使用最新版本的Android Studio 3.4.1
这是我的AddToFirebase.kt文件中的代码:
class AddToFirebase : AppCompatActivity() {
private lateinit var database: DatabaseReference
lateinit var addText: EditText
lateinit var addButton: Button
lateinit var otherValue: String
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_add_to_firebase)
addText = findViewById(R.id.etxAddToFirebase)
otherValue = "hellow"
btnAddToFirebase.setOnClickListener {
Toast.makeText(applicationContext, "TOAST_1", Toast.LENGTH_LONG)
addData()
Toast.makeText(applicationContext, "TOAST_2", Toast.LENGTH_LONG)
}
}
private fun addData() {
val addDat = etxAddToFirebase.text.toString().trim()
Toast.makeText(applicationContext, "TOAST_3", Toast.LENGTH_SHORT)
if (addDat.isEmpty()) {
Toast.makeText(applicationContext, "TOAST_4", Toast.LENGTH_LONG)
etxAddToFirebase.error = "Enter a value"
return
}
Toast.makeText(applicationContext, "wooooo", Toast.LENGTH_LONG)
val ref = FirebaseDatabase.getInstance().getReference("messages")
val msgId = ref!!.push().key!!
val message = Message(msgId, addDat, otherValue)
ref.child(msgId).setValue(message).addOnCompleteListener {
Toast.makeText(applicationContext, "DONE", Toast.LENGTH_LONG)
}
}
}
这是我创建的另一个类Message.kt中唯一的代码行
class Message (val id: String, val msg: String, val other:String)
除以下警告外,没有任何校对或gradle错误
类型为DatabaseReference的非空接收器上的不必要的非空断言(!!)