Ios Firebase-如何为现有数据库中的每一行添加新字段?
我正在使用实时Firebase数据库。假设我已经有一百万个用户,每个用户都有电子邮件、密码等字段 如果我突然想为数据库中的每个用户添加一个新字段,该怎么办?就像我希望每个用户都有一个名为age的字段一样Ios Firebase-如何为现有数据库中的每一行添加新字段?,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我正在使用实时Firebase数据库。假设我已经有一百万个用户,每个用户都有电子邮件、密码等字段 如果我突然想为数据库中的每个用户添加一个新字段,该怎么办?就像我希望每个用户都有一个名为age的字段一样 我知道我可以在Firebase中手动执行此操作,但在处理大型复杂数据库时不太实际为什么不使用Firebase创建一个方法。更新并运行所有文档 类似:(这是使用Firebase firestore) 或者,如果希望使其成为服务器端,也可以使用。发布一些代码,这样我们就可以看到如何帮助您。是的,但我
我知道我可以在Firebase中手动执行此操作,但在处理大型复杂数据库时不太实际为什么不使用Firebase创建一个方法。更新并运行所有文档 类似:(这是使用Firebase firestore)
或者,如果希望使其成为服务器端,也可以使用。发布一些代码,这样我们就可以看到如何帮助您。是的,但我需要在运行后删除这段代码,对吗?因为它完成了任务,不再需要了,对吗?是的,只运行一次如果你以后需要添加其他属性,也可以发表评论。虽然有一个公认的答案,但我不确定这是正确的答案。Firebase数据库没有字段-唯一的键:值对,并且与SQL不同,没有预定义的字段或列。子键:动态添加值(字段)。一般来说,FB也不允许nil/空值,因此永远不会写入不带值(nil)的年龄子字段。唯一的选择是向年龄键写入一个0值,但这只是额外的数据,因为没有人是0。更好的做法是在从用户处获取数据时写入数据。如果您真的想写入一组年龄为0的键:值对,则公认的答案假设为firestore,但实际上,这在Firebase中是一项非常简单的任务。只需观察添加了.childAdded的用户节点,在读入快照时,将年龄:0写入该节点键。尽管如此,还是在实际拥有数据时编写数据可能更好;去年只有5000个用户实际登录,为什么还要向用户节点写入一百万个0。
updateUser() {
this.db.collection('yourDbCollection').doc('ifYourIdCostumized').update({
age: newAgeHere
})
.then(function () {
console.log("Document successfully updated!");
}).catch(function (error) {
console.error("Error removing document: ", error);
});
}