2017-10-13 8 views
2

に配列のインデックスを削除し、私は私の文書では、このデータを得ましたか。これは私が考えたトリック実行する必要があります。Firestore

db.collection("data").document("free").updateData(["deleteme.deletemee.0" : FieldValue.delete()]) { (errr) in 
     print(errr) 
    } 

しかしerrrプリントのnilを、何も削除されません。

db.collection("data").document("free").getDocument { (doc, err) in 
     guard let _doc = doc, 
      doc?.exists ?? false else{ return } 
     print(_doc.data()) 
    } 

これはアウト出力します:

["deleteme": { 
    deletemee =  (
     1 //this is the value for the key, but where is my key?! :(
    ); 
}] 

私はそれがどこで、キーを見ることができない文書を取得する場合、このコードを使用したとき、私は、データについての奇妙な何かに気づきましたか? Firestoreのインデックスで何かを削除するには?ありがとう。

答えて

1

現在、Cloud Firestoreに格納されている配列の個々の要素を変更することはできません。

あなたは、このようなマップ(キーは問わいけない)としてデータを保存した場合:今データは次のようになります

// Delete the things.one data 
db.collection("whatever").document("whatever").updateData([ 
    "things.one": FieldValue.delete(), 
]) { err in 
    if let err = err { 
     print("Error updating document: \(err)") 
    } else { 
     print("Document successfully updated") 
    } 
} 

{ 
    name: "sam", 
    things: { 
    one: "value", 
    two: "value" 
    } 
} 

その後、あなたは、このような個々の要素を削除することができますこれは

です。
{ 
    name: "sam", 
    things: { 
    two: "value" 
    } 
} 
+0

> :(hmm okので、配列は変更できませんので、この時点ではかなり役に立たないです... –

+0

はいr今はあまり有用ではありませんが、これはベータの制限であり、今後は配列/配列クエリのサポートが強化されます。 –

+0

お待ちください:)ありがとう –