无法将数据添加到 Firebase 中的不同节点
Posted
技术标签:
【中文标题】无法将数据添加到 Firebase 中的不同节点【英文标题】:Cannot add data to different nodes in firebase 【发布时间】:2021-11-19 01:26:08 【问题描述】:在 Firebase 实时数据库中,已经有 user 节点。我需要创建另一个名为 BankDetails 的节点,但是当我尝试输入详细信息时出现错误。未创建另一个节点。
这是我的代码。它在片段上。
val database = Firebase.database
val myRef = database.getReference("BankDetails")
view.rechargeAmount.setOnClickListener
if( emailBankText.text.trim().isNotEmpty())
val bankAccNo = bankAccText.getText().toString()
val accountBalance = amountText.getText().toString().toDouble()
val encodedEmail = encodeUserEmail(emailBankText.toString())
val bankDetails1 = BankDetails(encodedEmail,bankAccNo,accountBalance)
myRef.child(encodedEmail).setValue(bankDetails1).addOnSuccessListener
Toast.makeText(activity, "updated successfully", Toast.LENGTH_LONG).show()
.addOnFailureListener
Toast.makeText(activity, "not updated", Toast.LENGTH_LONG).show()
else
Toast.makeText(activity, "error", Toast.LENGTH_LONG).show()
这是我得到的错误com.google.firebase.database.DatabaseException: Invalid Firebase Database path
我的代码有什么问题吗?帮帮我,我是 Kotlin 的新手。
编辑
我创建了另一个节点并添加了一些测试数据。 但是
【问题讨论】:
您是否尝试将val database = Firebase.database
更改为val database = FirebaseDatabase.getInstance()
?
@AlexMamo Yaa,得到了同样的错误。没有其他方法可以将数据添加到 BankDetails 节点吗?
你确定encodedEmail
有一个没有.
的值吗?你能检查一下吗?
@AlexMamo 你是对的。就是这样。非常感谢
【参考方案1】:
您的代码中的问题是由于在将作为键添加到实时数据库中的值中使用了.
,这实际上是不可能的。您应该始终将电子邮件地址编码为:
name@email.com -> name@email,com
正如我在以下帖子中的回答中所解释的那样:
How to add email address to firebase kotlin?
【讨论】:
【参考方案2】:BankDetails
不存在,所以myRef
变量无法初始化,因为他们找不到这个节点,你需要通过在节点内部添加一些测试数据来创建这个节点,然后问题应该解决了。
【讨论】:
问题仍未解决 我再次更新了我的问题 @ABI 您的 firebase 项目中只有一个数据库?以上是关于无法将数据添加到 Firebase 中的不同节点的主要内容,如果未能解决你的问题,请参考以下文章
将图像批量导入 Firebase 存储并将下载链接添加到 Firebase 数据库节点
无法访问 Firestore 快照中的数据以将标记添加到存储在 Firebase 中的 Google 地图
如何将数据作为子集合添加到firebase颤振中的所有用户文档?