我正在尝试同时从Firebase数据库中的多个位置删除数据。
在火力地堡文档状态:
“删除数据的最简单方法是在对数据位置的引用上调用removeValue。您还可以通过将nil指定为另一个写操作(例如setValue或updateChildValues)的值来进行删除。您可以将此技术与updateChildValues一起使用以进行删除一个API调用中有多个子级。”
我的代码是
let childUpdates = [path1 : nil,
path2 : nil,
path3 : nil,
path4 : nil]
ref.updateChildValues(childUpdates)
所有四个路径都是字符串,但是出现错误:
“表达的类型是模棱两可的,没有更多的上下文。”
我认为这是由于nil值引起的,因为如果我将nil替换为其他任何值(例如Int),错误就会消失。
使用updateChildValues从Firebase删除数据的正确方法是什么?我们希望它以类似于Firebase中的removeValue()函数的方式工作。我们希望这样做的原因是因为它可以在一个呼叫中从多个位置删除。
所以这里的问题是
ref.updateChildValues(childUpdates)
需要[String:AnyObject!]参数来更新ChildValues,而AnyObject!不能为nil(即您不能使用AnyObject?这是可以为nil的可选)
但是,您可以这样做
let childUpdates = [path1 : NSNull(),
path2 : NSNull(),
path3 : NSNull(),
path4 : NSNull()]
因为AnyObject!现在是NSNull()对象(不是nil),并且Firebase知道NSNull是nil值。
编辑
您可以对此进行扩展以进行多位置更新。假设您有一个结构
items
item_0
item_name: "some item 0"
item_1
item_name: "some item 1"
并且您想要更新两个项目名称。这是快速代码。
func updateMultipleValues() {
let path0 = "items/item_0/item_name"
let path1 = "items/item_1/item_name"
let childUpdates = [ path0: "Hello",
path1: "World"
]
self.ref.updateChildValues(childUpdates) //self.ref points to my firebase
}
结果是
items
item_0
item_name: "Hello"
item_1
item_name: "World"
我试图同时删除Firebase数据库中多个位置的数据。 Firebase文档声明: "删除数据的最简单方法是在引用该数据的位置时调用RemveValue。还可以通过将nil指定为其他写入操作(如setValue或updateChildValue)的值来删除。可以将此技术与updateChildValue一起使用,在单个API调用中删除多个子级。" 我的代码是 所有四条路径都是字符串,但我得到一个错
我的Firebase数据库存储格式如下。 但在设置存储在firebase数据库中的值时,我是这样做的。 当我写上面的代码时,我在Firebase数据库中添加了一个数据。但是它会自动在我的插入数据库格式顶部包含数据快照JsonObject,就像这样,这是错误的。 如何从Firebase的插入格式中删除此DataSnapshot?
我以为上面的办法行得通,但它失败了。我把它放在渲染行部分。它出现了reference.remove失败。第一个参数必须是有效的函数。就像在这些房间里,它有信息,我认为这是我出错的地方,但我不知道如何去做它。谢谢。
如何从控制台从FireBase中删除节点?由于它太大,显然我无法从控制台中删除它。通常我可以按节点名称附近的删除按钮,但它显示控制台仅出于性能原因而读取。
我遵循此处的指南从firebase数据库中删除值。这是我的数据结构。 这是我正在使用的代码。 发生的情况是,在这个调用中删除了整个/bookmarks节点,而不仅仅是对所需书签的引用。如何实现只删除一个书签而不是删除整个节点?
我有一个firebase数据结构,如下所示: 现在我想删除节点KJSXd4ScEmJ6N4UFc5k。但我只知道“雇员名”:塞马。我尝试删除节点时使用了: 但这不起作用,因为“无效的Firebase数据库路径:$member.Firebase数据库路径不能包含“.”、“#”、“$”、“[”或“].”” 所以我的问题是,我如何删除节点:"-KJSXd4ScEmJ6N4UFc5k"只知道:"Semah