色の16進コードの配列から特定の子を照会したいと思います。ランダムに生成されたキーに含まれるFirebaseクエリの16進コード
は、ここに私のデータベース構造のスナップショットです:
私は特定進コードを照会し、その親オブジェクトの配列全体を入手するにはどうすればよいですか?
色の16進コードの配列から特定の子を照会したいと思います。ランダムに生成されたキーに含まれるFirebaseクエリの16進コード
は、ここに私のデータベース構造のスナップショットです:
私は特定進コードを照会し、その親オブジェクトの配列全体を入手するにはどうすればよいですか?
特定の値がリストに存在するかどうかを照会することはできません。これは、Firebaseのドキュメントでデータベース内の配列を使用することを推奨している理由の1つです。
しかし、この場合(そして私が遭遇するほとんどの場合)、実際に配列が必要ない可能性があります。ユーザーが選んだ色を気にしているとします。
palettes
-KSmJZ....A5I
"0x474A39": true
"0xbA9A7C": true
"0xDEDEDF": true
"0x141414": true
"0x323E35": true
私は別の方法でそれをやった、
がこれを行う機能を作った:
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)
その場合、あなたは、より効率的にがを設定した色を保存することができます5ヘクスのいずれかをターゲットにすると、アレイ全体が戻ってきます。
ええと、私はまだKSmJZ ... A5Iのすべての子オブジェクトを取得することができます。これは、ユーザーが特定の16進色をクエリすると、この特定の親に格納されている5色のパレット全体を取得するようになります。 –
ええ、最高のデータ構造は、それをどのように使いたいかによって決まります。だから、私がやったところでタイピングをやめたのです。あなたは、あなたのアプリのユースケースを可能にする方法でデータを保存する必要があります。多くの場合、同じデータを複数回保存する必要があります。はじめに[NoSQLデータモデリング](https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/)を読んでください。 –