Firebase DocumentSnapshot.getString未找到字段时的静态默认值咨询
关于DocumentSnapshot.getString()无对应键时的返回值及你的场景解决方案
嘿,刚好对Firebase的这个API比较熟悉,来给你唠清楚:
首先明确核心问题:当你调用DocumentSnapshot.getString("isSomeType")但文档里根本没有isSomeType这个键时,它会返回null——这就是你问的“静态默认值”。
针对你的场景(部分文档用布尔字段isSomeType标识类型,其余文档无此字段),具体的判断逻辑可以这么走:
- 如果文档存在
isSomeType字段(不管它存的是true还是false),getString()会把布尔值转换成对应的字符串,也就是返回"true"或者"false"; - 如果文档没有这个字段,
getString()直接返回null。
所以你只需要判断返回值是否为null:如果是null,就说明这是不需要标识的非目标类型文档;如果是"true"或"false",就属于你要标记的类型。
不过这里给你个小建议:既然isSomeType本质是布尔字段,其实用DocumentSnapshot.getBoolean("isSomeType")会更贴合场景——这个方法在字段不存在时同样返回null,存在时直接返回布尔值true/false,不用做字符串和布尔值的转换,逻辑会更直观哦。
内容的提问来源于stack exchange,提问作者Paradox
相关产品推荐
相关产品推荐

