You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Firebase Realtime Database中表示空列表、空字典与Null值?

如何在Firebase Realtime Database中存储空列表、空字典和Null值?

我需要在Firebase Realtime Database中存储以下特殊值:

  • 空列表(Empty lists)
  • 空字典(Empty dictionaries)
  • Null / none / nil

但提交包含这些值的键值对时,它们不会被保存到数据库中。举个例子:

更新前数据库JSON

{
    "foo": 0
}

Python更新代码

data = {
    "normal_list": [1, 2, 3],
    "empty_list": [],
    "normal_dict": {"bar": "bar2"},
    "empty_dict": {},
    "null": None,
    "normal_value": 69
}
database.set(data)

更新后数据库JSON

{
    "foo": 0,
    "normal_list": [1, 2, 3],
    "normal_dict": {"bar": "bar2"},
    "normal_value": 69
}

可以看到,空列表、空字典和Null对应的条目都没有被保存。

我尝试过的解决方案是把这些特殊值转换成特定字符串后存入,读取时再转换回原类型:

{
    "normal_list": [1, 2, 3],
    "empty_list": "--emptylist--",
    "normal_dict": {"bar": "bar2"},
    "empty_dict": "--emptydict--",
    "null": "--none--",
    "normal_value": 69
}

但这种方式存在安全隐患,比如用户输入的字符串可能和这些特殊标识冲突。我不确定简单的字符串包装能不能避免这类问题。

请问有没有更优的解决办法?或者当前方案是否足够安全易用?

这里的"足够安全易用"定义为:

  • 不存在欺骗数据库或程序存储/使用意外值的可能;
  • 数据的读写操作简单便捷。

内容的提问来源于stack exchange,提问作者TNTzx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:46:07