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