在POST请求中将空数组丢弃到Firebase

sgr*_*ove 2 api rest firebase

尝试使用Firebase REST API将哈希映射推送到列表时,将以静默方式删除任何具有空数组值的键:值对,例如:

curl -X POST -d '{"name": "Persists", "words": ["what", "is", "this"], "toBeDropped": []}' "https://fbdev.firebaseio.com/channels/example.json?auth=sometoken

Firebase数据结构中的结果:

{
 "random-id": {
    "name": "Persists",
    "words": ["what", "is", "this"]
  }
}
Run Code Online (Sandbox Code Playgroud)

这导致我们的客户端上的问题,因为他们期望toBeDropped是[],而不是null在这种情况下.

And*_*Lee 6

这实际上是Firebase的预期行为.在内部,Firebase将数组和对象视为相同类型(如果所有键名都是整数,则仅将它们转换为客户端上的数组).Firebase还将空对象和null视为同一类型.

结果,您的空数组最终为null.