在Framer中从Firebase获取特定键的方法(编程新手求助)
获取Firebase数据中特定键对应的数据
嘿,完全不用在意问题基础,新手阶段遇到这些很正常~ 我来帮你拆解怎么从拿到的Firebase数据里提取特定键的内容。
首先你拿到的数据是一个对象集合,那些-L8S1RLTU3P3Lb-PxtsF这类字符串就是每个数据项的唯一键,对应的值是包含amount、date、type的子对象。下面给你两种最常用的处理方式:
1. 已知特定键名,直接读取
如果你已经知道要找的键(比如-L8S1RLTU3P3Lb-PxtsF),可以直接通过对象属性访问的方式获取对应数据:
response = (names) -> # 替换成你要找的目标键 targetKey = "-L8S1RLTU3P3Lb-PxtsF" # 直接通过键名取数据 targetData = names[targetKey] # 打印或使用数据 print "目标键对应的数据:", targetData print "金额:", targetData.amount print "日期:", targetData.date firebase.get("/test/items", response, {orderBy: "$key"})
2. 不知道键名,按数据属性筛选
如果不知道具体键名,但想找符合某个条件的数据(比如type为"c"、amount大于某个值),可以遍历整个对象集合来筛选:
response = (names) -> # 遍历所有键值对 for key, data of names # 比如筛选type为"c"的数据 if data.type is "c" print "符合条件的键:", key print "对应数据:", data # 也可以直接提取单个属性 print "金额:", data.amount firebase.get("/test/items", response, {orderBy: "$key"})
另外补充一点:Firebase的get方法返回的这种结构,是因为你用了push()方法添加数据(自动生成唯一键)。如果后续需要更精准地获取单条数据,也可以直接请求该键的路径,比如firebase.get("/test/items/-L8S1RLTU3P3Lb-PxtsF", response),这样就能直接拿到单条数据,不用处理整个集合啦。
内容的提问来源于stack exchange,提问作者Anatoly Sidorov
相关产品推荐
相关产品推荐

