【问题标题】:Firebase ref.set() removes text from other form fieldsFirebase ref.set() 从其他表单字段中删除文本
【发布时间】:2019-09-19 14:08:26
【问题描述】:

我刚刚开始学习 Firebase。

我在页面上有一个表单,它有多个 textarea 元素。每个 textarea 都有自己的提交按钮。当我在任何一个文本区域中写入文本并按下提交按钮时,该值将保存在数据库中。

但是如果我在 Textarea-1 中输入一些文本并保持原样,然后在 Textarea-2 中输入一些文本并按下提交按钮,Textarea-2 值会保存在数据库中,但其他 Textarea 中的文本(在这种情况下 Textarea-1) 将被删除。 在保存数据的函数中,我还使用以下代码设置当前日期:

addMyValues(val1, val2, val3, val4) {
this.db.database.ref('profiles/' + new Date().toDateString() + '/' + val1).push({
  name  : val2.dispName,
  email : val2.email,
  phone : val3
});
this.db.database.ref('birthDay/' + val1 + '/newUpdate').set(new Date().toDateString());   
} 

什么会导致问题?

【问题讨论】:

  • 文本已从数据库或您的前端输入中删除?
  • 从另一个未提交的文本区域前面,而值正在保存。

标签: javascript firebase firebase-realtime-database


【解决方案1】:

.set() 如果不指定merge会覆盖文档中的数据

应该是这样的:

this.db.database.doc('birthDay/' + val1 + '/newUpdate').set(new Date().toDateString(), { merge: true }); 

需要在set方法中设置merge

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-04
  • 2011-12-12
  • 1970-01-01
  • 2016-11-24
相关资源
最近更新 更多