2017-02-26 5 views
1

私はこのウェブサイトで、Firebaseデータベースにデータを書き込むことに焦点を当てた多くの記事を読んできました。しかし、彼らの誰も私の問題を解決することはできませんでした。作成した子にautoIDを保存する方法は?

私はautoIDを持つオブジェクトを作成しましたが、後でそれを削除するにはオブジェクトを作成したautoIDが必要です。そのため、そのオブジェクトにautoIDを保存する必要があります。それだけではうまくいかない。保存(_差出人:任意)FUNC

@IBAction:{

let Town = Stadt.text 
    let surface = Untergrund.text 
    let size = Groesse.text 
    let numberof = AnzToreKoerbe.text 
    let laenge = longitudeLabel.text 
    let breite = latitudeLabel.text 
    let street = Strasse.text 
    let Art = Platzart.text 
    var PlatzID = "" 


    var upload : [String : AnyObject] = ["Platzart": Art as AnyObject, 
             "Laengengrad" : laenge as AnyObject, 
             "Breitengrad" : breite as AnyObject, 
             "Stadt" : Town as AnyObject, 
             "Strasse" : street as AnyObject, 
             "Untergrund" : surface as AnyObject, 
             "Groesse" : size as AnyObject, 
             "AnzahlToreKoerbe" : numberof as AnyObject, 
             "PlatzID" : PlatzID as AnyObject] 


    ref?.child("Sportplatz").childByAutoId().setValue(upload) 

    PlatzID = (ref?.key)! 

    ref?.updateChildValues(["PlatzID" : PlatzID as AnyObject]) 

私は記事のいくつかは推奨されているように、キーを保存しようとしましたし、その後更新しました。ここ

コードです子の "PlatzID"をそのキーで置き換えます。 新しいオブジェクトを作成すると、PlatzIDはまだ空です。

ありがとうございました。

+0

あなたはFIRAuthクラスを使用して、アプリでユーザーを登録するたびに、補完ハンドラで 'authData'オブジェクトを取得します。このオブジェクトは一意のID e、g 'authData.uid'を含みます。このIDは、ユーザーの電子メールアドレスのハッシュ値を表します。このuid値は、ユーザがユーザとパスワードを使用してアプリケーションにログインした後、後でFirebaseデータベースの書き込み/読み取り/更新を行った後に取得できます。したがって、Firebase DBは次のようになります:ユーザ/ユーザがログインしたときに受け取ったユーザIDと、DBに保存している他のオブジェクト。 – bibscy

+0

あなたの答えをありがとう。しかし私はFIRAuthでオブジェクトを作成しました。私は、自動IDを使用するか、私は保存することができます同様のものを作成したい。データベースからそれらを削除するには、私は必死にそのIDが必要です! – AlexVilla147

+0

私が見ることができる唯一の解決策は、dbを照会し、すべてのオブジェクトを取得し、表示および削除するオブジェクトを選択することです。それ以外の場合は、あなたが知らないものを検索することはできません。 Firebaseツリーはkey:valueのペアのJSONオブジェクトです。あなたの鍵は生成されたautoIDなので、わからない鍵の価値を得ることはできません。このように考えると、背中の裏に2つのリンゴが隠れていて、1つは読まれていて、もう1つは緑です。緑色のリンゴをどうやって手に入れられますか? 1あなたは私にあなたに両手を見せてくれるように頼んでいます(あなたはdbを照会してキーを取得します:値のペア)2.あなたはどちらの手に緑色/赤色のものがあるかを知っています。あなたの遅い答えのために – bibscy

答えて

0

ない、これは+あなたを助けることができる場合、私は少し遅れての答えと思いますが、あなたはこのようAUTOIDを取得し、保存することができますを確認します。

let randomID = Database.database().reference().childByAutoId() 
print(randomID.key) 
+0

感謝しますように願って、私はこのアプローチを数日前にも見ましたが、とにかく感謝! – AlexVilla147

関連する問題