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

如何获取Firestore数据库中Map对象的长度?

解决Firestore文档中数组/Map的长度获取问题

针对你遇到的Firestore文档里空集合为数组、有数据时为Map的情况,可通过以下方式获取长度:

  • 获取Map类型的长度:直接用Object.keys()提取Map的所有键名,再取数组长度,示例代码:

    // 获取Cars这个Map的长度
    const carsLength = Object.keys(vehicles.Cars).length;
    console.log(carsLength); // 输出3
    
  • 通用兼容方法(同时适配数组和Map):如果需要统一处理两种类型,可写一个工具函数自动判断:

    function getLength(collection) {
      // 先判断是否为数组
      if (Array.isArray(collection)) {
        return collection.length;
      }
      // 判断是否为非空对象(即Firestore的Map)
      if (typeof collection === 'object' && collection !== null) {
        return Object.keys(collection).length;
      }
      // 处理字段不存在或其他异常情况
      return 0;
    }
    
    // 使用示例
    console.log(getLength(vehicles.Motorcycles)); // 空数组时输出0
    console.log(getLength(vehicles.Cars)); // Map时输出3
    

原理说明:Firestore的Map在JS中对应普通对象,Object.keys()会返回对象所有可枚举键名的数组,其长度就是Map中包含的对象数量;而数组直接使用原生的length属性即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 23:48:22