我不知道问题是什么,但Edittext中的字符串没有存储在我的Firestore数据库中。请帮助我是Firestore和kotlin的新手
MainActivity.java
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val mFirestore: FirebaseFirestore = FirebaseFirestore.getInstance()
val name = findViewById<EditText>(R.id.nameText)//nameText.text.toString()
val user = findViewById<EditText>(R.id.userText)
val occ = "Student"
val usermap = HashMap<String, Any>()
usermap.put("Name", name.text.toString())
usermap.put("Occupation", occ)
usermap.put("Type", user.text.toString())
button.setOnClickListener() {
mFirestore.collection("Users").add(usermap).addOnSuccessListener() {
Toast.makeText(this, "Data Stored", Toast.LENGTH_SHORT).show()
}.addOnFailureListener() {
Toast.makeText(this, "Data Not Stored", Toast.LENGTH_SHORT).show()
}
}
}
}
这是我的firestore数据库截图,请检查并帮助我
答案 0 :(得分:1)
您在创建EditText
时立即(且仅一次)读取其中的值 - 此时它们仍然是空的。相反,每次都在侦听器的回调中读取它们的值,如下所示:
button.setOnClickListener() {
val usermap = HashMap<String, Any>()
usermap.put("Name", name.text.toString())
usermap.put("Occupation", occ)
usermap.put("Type", user.text.toString())
mFirestore.collection("Users").add(usermap).addOnSuccessListener() {
Toast.makeText(this, "Data Stored", Toast.LENGTH_SHORT).show()
}.addOnFailureListener() {
Toast.makeText(this, "Data Not Stored", Toast.LENGTH_SHORT).show()
}
}