从Firebase说明:
给定像alanisawesome这样的单个关键路径,updateChildren()仅更新第一个子级别的数据,并且超出第一个子级别传递的任何数据都被视为setValue()操作.多路径行为允许使用更长的路径(如alanisawesome / nickname)而不覆盖数据.这就是第一个例子与第二个例子不同的原因.
我试图在我的代码中使用单个函数createOrUpdateData(object).在更新的情况下,它会正确更新第一级子级,但如果我传递了嵌套对象,则会删除该嵌套对象的所有其他属性.
这是代码:
function saveUserDetails(email,object){ var hashedEmail = Utilities.getHashCode(email); var userRef = ref.child(hashedEmail); return $q(function(resolve,reject){ return userRef.update(object,function(error){ if(error){ reject(error); }else{ resolve("Updated successfully!"); } }); }); }
所以,如果我通过:
{ name: 'Rohan Dalvi',externalLinks: { website: 'mywebsite' } }
然后它将删除externalLinks对象中的其他属性.是否有更简洁的方法来避免这种情况?
简而言之,如何确保仅更新嵌套对象并且不删除数据.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。