将数据添加到数据库

时间:2018-08-25 14:18:13

标签: android firebase kotlin google-cloud-firestore

我正在Android Studio上使用Kotlin创建一个应用。 在应用程序中,将允许用户添加图像,用户名和电话号码 进行其他活动。提及的信息应保存在应用程序Cloud Firestore(Firebase)中。

但是,在为firestore函数编码时,数据不会保存到数据库中

有人可以帮忙吗?

在构建我的应用程序时,它显示的内容是:

Open the picture

这是我关于stackoverflow的第一篇文章,所以,如果您想了解任何其他信息,请告诉我。

谢谢您的帮助。

这是我的代码:

     setupBtn.setOnClickListener {
                val username: String = setupName.text.toString()
                val phoneNumber: String = setupPhoneNumber.text.toString()


                    if (!TextUtils.isEmpty(username) && 
     !TextUtils.isEmpty(phoneNumber)) { //if fields are not empty, proceed. Else, 
    tell user to fill both fields
                    setupProgressBar.visibility = View.VISIBLE
                    val userID = mAuth.currentUser!!.uid // saves user ID
                    val imagePATH: StorageReference = 
    storageRef.child("profile_images").child(userID + ".jpg")  //store the image 
  as the user ID
                    imagePATH.putFile(mainImageURI).addOnCompleteListener { 
  task ->
                        if (task.isSuccessful) {
                            //get the downloadURI of the image and store it
                            val downloadURI = 
  task.result.metadata!!.reference!!.downloadUrl.toString()

                            //A collection stores in the database that has a 
   1)name .. 2)phone number .. 3)image
                            val data = HashMap<String, Any>()
                            data.put("name", username)
                            data.put("phone number", phoneNumber)
                            data.put("image", downloadURI)

                            val docRef = 
mFirestore.collection("Users").document(userID).set(data)
                              docRef.addOnCompleteListener { task ->
                                if (task.isSuccessful) {
                                    Toast.makeText(this, "User Setting are 
 updated", Toast.LENGTH_LONG).show()
                                    val intent = Intent(this, 
PhotoBlog::class.java)
                                    startActivity(intent)
                                    finish()
                                } else {
                                    val errorMessage: String? = 
 task.exception!!.message
                                    Toast.makeText(this, "Database Error: 
 $errorMessage", Toast.LENGTH_LONG).show()
                                }
                            }
                        } else {
                            val errorMessage: String? = 
 task.exception!!.message
                            Toast.makeText(this, "Image Error: 
$errorMessage", Toast.LENGTH_LONG).show()
                        }
                        setupProgressBar.visibility = View.INVISIBLE
                    }
                } else {
                    Toast.makeText(this, "Please, fill both fields", 
Toast.LENGTH_LONG).show()
                    }
                }
            }

我还导入了所需的库,并定义了一个Firestore变量

private lateinit var  mFirestore: FirebaseFirestore

mFirestore = FirebaseFirestore.getInstance()

0 个答案:

没有答案