Firebase构造和过滤键上的多个属性(值)
我正在构建一个解决方案,需要在我的产品上添加颜色、类型等属性。产品可以有多种颜色 所以我的问题是,我应该在firebase中以数组或对象的形式构造数据属性,还是有其他方法 我想用.eQualTo过滤我的产品(或者如果有更好的方法) 例1) 例2)Firebase构造和过滤键上的多个属性(值),firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,我正在构建一个解决方案,需要在我的产品上添加颜色、类型等属性。产品可以有多种颜色 所以我的问题是,我应该在firebase中以数组或对象的形式构造数据属性,还是有其他方法 我想用.eQualTo过滤我的产品(或者如果有更好的方法) 例1) 例2) 例3)这里要实现的几件事: 每当您觉得需要存储数组,但又想对其执行contains()操作时:您可能希望存储一个集合。有关更多详细信息,请参见我之前的回答: 即使将颜色存储为一组,最终也会出现如下查询:ref.orderByChild('color
例3)这里要实现的几件事:
- 每当您觉得需要存储数组,但又想对其执行
操作时:您可能希望存储一个集合。有关更多详细信息,请参见我之前的回答:contains()
- 即使将颜色存储为一组,最终也会出现如下查询:
。此查询工作时,需要为ref.orderByChild('color/blue').equalTo(true)
定义索引。一旦您的类别/颜色是动态的,这就不可能了,因为您不能以编程方式添加索引['color/blue'、'color/red'、'color/white']
itemsByColor: {
red: {
keyOfRedAndWhiteProduct: true
},
white: {
keyOfRedAndWhiteProduct: true
},
blue: {
keyOfBlueProduct: true
}
}
现在,您可以轻松地查找项目键列表,然后加载它们
我强烈建议您也阅读,特别是关于。这篇文章是任何向NoSQL数据库过渡的人的必读读物。这里要实现的几点:
- 每当您觉得需要存储数组,但又想对其执行
操作时:您可能希望存储一个集合。有关更多详细信息,请参见我之前的回答:contains()
- 即使将颜色存储为一组,最终也会出现如下查询:
。此查询工作时,需要为ref.orderByChild('color/blue').equalTo(true)
定义索引。一旦您的类别/颜色是动态的,这就不可能了,因为您不能以编程方式添加索引['color/blue'、'color/red'、'color/white']
itemsByColor: {
red: {
keyOfRedAndWhiteProduct: true
},
white: {
keyOfRedAndWhiteProduct: true
},
blue: {
keyOfBlueProduct: true
}
}
现在,您可以轻松地查找项目键列表,然后加载它们
我强烈建议您也阅读,特别是关于。这篇文章是任何向NoSQL数据库过渡的人必读的
itemsByColor: {
red: {
keyOfRedAndWhiteProduct: true
},
white: {
keyOfRedAndWhiteProduct: true
},
blue: {
keyOfBlueProduct: true
}
}