为了账号安全,请及时绑定邮箱和手机立即绑定

使用js映射两个Firestore集合中的数据

使用js映射两个Firestore集合中的数据

犯罪嫌疑人X 2023-08-18 17:11:04
我有两个集合,即:CURRENCY-PAIR和Alerts。该CURRENCY-PAIR集合包含以下内容;货币对名称货币卖价货币买入价该Alerts集合包含以下内容:警报ID警报状态我如何将集合和集合映射 Currency-Pair Name到CURRENCY-PAIR 显示Alert_Status两者Alerts的列表。
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

假设你想从 firestore 获取数据集合,你应该首先获取该集合的引用:


const currencyRef = firestore().collection('CURRENCY-PAIR');

const alertRef = firestore().collection('Alert_Status');

然后,您可以使用这些引用从 firestore 获取数据:


currencyRef.get()

  .then((doc) => {

    console.log(doc.data());

  });

如您所见,数据采用承诺的形式,您必须解决该承诺。doc.data() 是集合中所有数据的数组,采用 JS 对象的形式。


由于数据作为承诺而来,因此您可以创建一个异步获取函数来解析承诺,并将数据放入返回的新数组中。也许你可以这样做:


const fetchAllCurrencies = async () => {

  const obj = []; // empty array to put collections in

  const currencyRef = firestore().collection('CURRENCY-PAIR'); // ref

  const snapshot = await currencyRef.get() // resolve promise from firestore

  snapshot.forEach((doc) => { // loop over data

    obj.push({ id: doc.id, ...doc.data() }); // push each collection to array

  });

  return obj; // return array with collection objects 

}

您可以为警报集合创建类似的函数。


我不完全确定您的意思:“我如何将 CURRENCY-PAIR 集合中的货币对名称和 Alerts 集合中的 Alert_Status 映射到显示两者的列表。”


通过创建像上面这样的函数,您可以获得集合 js 对象的数组。您可以将两个数组组合起来:


const newArray = array1.concat(array2);

这会将两个数组融合为一个。这可能不是您想要做的。如果我是你,我会将两个数组分开。


查看完整回答
反对 回复 2023-08-18
  • 1 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信