【问题标题】:I cannot seem to connect to Firestore database to save user's data我似乎无法连接到 Firestore 数据库来保存用户数据
【发布时间】:2021-12-27 02:05:46
【问题描述】:

我目前正在开发一个 Android 项目,我已经被这个问题困扰了几个小时了。

我正在尝试连接到我的 Firestore 数据库。这个想法是存储来自用户的附加信息的文档。它在注册时创建,然后发送到数据库。

代码如下:

    auth.createUserWithEmailAndPassword(email, password)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Sign in success
                Log.d("RegistroFirebase", "createUserWithEmail:success")
                val user = auth.currentUser

                // Create user's database document

                writeNewUser(
                    user!!.uid, user!!.email, binding.signUpName.text.toString(),
                    binding.signUpSurname.text.toString(), "623623623")
                    Log.d("Crear documento usuario", "Success?")

                reload("main")`

以及功能:

private fun writeNewUser(userId: String, email: String?, name: String, surname: String, phone:String) {
    val user = User(email, name, surname, phone)

    db.child("users").child(userId).setValue(user)
}

我还有一个用户类:

data class User(val email:String? = null, val name:String? = null,
                val surname:String? = null, val phone:String? = null) {}

至于错误,我没有得到。它可以正常工作,但不会向我的 Firestore“用户”集合添加任何新内容。

任何帮助将不胜感激。提前谢谢你

【问题讨论】:

  • 您尝试过 Abdullah Z Khan 的解决方案吗?有用吗?
  • 不,它没有。似乎程序没有执行该行。然而,多亏了这一点,我从 logcat 中注意到了一些新的东西。现在是问题。
  • 您的 Firebase 名称拼写是否正确?
  • 如果this 是您所说的,那么是的

标签: android firebase kotlin google-cloud-platform google-cloud-firestore


【解决方案1】:

你说:

我似乎无法连接到 Firestore 数据库来保存用户数据

这是有道理的,因为当使用以下代码行时:

val user = User(email, name, surname, phone)
db.child("users").child(userId).setValue(user)

您正尝试将数据写入Realtime Database 写入Cloud Firestore。虽然两者都是 Firebase 服务的一部分,但它们是具有不同机制的不同数据库。为了能够将数据写入 Firestore,请使用以下代码行:

FirebaseFirestore db = FirebaseFirestore.getInstance();
CollectionReference usersRef = db.collection("users");
usersRef.document(userId).set(user)

您还可以在整个操作中附加一个监听器,以查看是否出现问题。

【讨论】:

  • 它就像一个魅力。非常感谢您的帮助!
【解决方案2】:

与创建用户类似,setValue函数也可以用addOnCompleteListeneraddOnSuccessListeneraddOnFailureListener监听。

参考:Add a Completion Callback.

你需要通过这些来诊断结果。

【讨论】:

  • 我已经对此进行了测试以检查并得到一些错误。它没有显示每个结果的输出,但我注意到 logcat 上的这一行:2021-11-16 13:56:25.826 12534-12665/com.example.senato W/PersistentConnection: pc_0 - Firebase Database connection was forcefully killed by the server. Will not attempt reconnect. Reason: Firebase error. Please ensure that you spelled the name of your Firebase correctly
猜你喜欢
  • 2012-11-02
  • 2021-07-02
  • 1970-01-01
  • 2012-03-24
  • 2023-03-31
  • 2019-03-09
  • 1970-01-01
  • 2021-04-24
  • 2020-12-30
相关资源
最近更新 更多