Firebase查询随机生成的密钥中包含的hex代码

我想从hex颜色代码数组中查询一个特定的孩子。

这是我的数据库结构的快照:

在这里输入图像说明

我如何查询一个特定的hex代码,并获得其父对象的整个数组?

您无法查询列表中是否存在特定的值。 这是Firebase文档build议不要在数据库中使用数组的原因之一。

但在这种情况下(和我遇到的大多数情况),你可能不需要一个数组。 说你只关心你的用户select了什么颜色。 在这种情况下,您可以更有效地将颜色存储为一

palettes -KSmJZ....A5I "0x474A39": true "0xbA9A7C": true "0xDEDEDF": true "0x141414": true "0x323E35": true 

我用另一种方式做了,

做了这样一个function:

 let databaseRef = FIRDatabase.database().reference() let HEX1 = hex1.text! as String let HEX2 = hex2.text! as String let HEX3 = hex3.text! as String let HEX4 = hex4.text! as String let HEX5 = hex5.text! as String let URL = url.text! as String // First set let colorArray1 = [HEX2, HEX3, HEX4, HEX5, URL] databaseRef.child("palette").child(HEX1).setValue(colorArray1) // second set let colorArray2 = [HEX1, HEX3, HEX4, HEX5, URL] databaseRef.child("palette").child(HEX2).setValue(colorArray2) // third set let colorArray3 = [HEX1, HEX2, HEX4, HEX5, URL] databaseRef.child("palette").child(HEX3).setValue(colorArray3) // fourth set let colorArray4 = [HEX1, HEX2, HEX3, HEX5, URL] databaseRef.child("palette").child(HEX4).setValue(colorArray4) // fifth set let colorArray5 = [HEX1, HEX2, HEX3, HEX4, URL] databaseRef.child("palette").child(HEX5).setValue(colorArray5) 

所以当我把目标locking在5个格子中的任何一个时,它就会把整个arrays带回来。