0
私はバーテーブルを持っていて、そのバーのストレージイメージを使ってバーテーブルから1つのバーを削除したいとします。バーの名前を使ってバーを削除する。ファイアベースでのオブジェクトの削除
バーの名前は一意です - 新しいバーを追加する前にバーの名前を照会して、2つのバーの名前が同じでないことを確認します。
これは私の機能であり、どうしていますか?私はDBからバーオブジェクトを削除する際に問題があります。もちろん、私はこのようにして、バーのテーブル全体を削除しました。バーのautoIdのキーまたはIDを取得して削除できる方法はありますか?それを行う正しい方法は何ですか。
func deleteBar(name:String ,completion:@escaping (_ status:Bool, _ msg:String?)->())
{
let ref = FIRDatabase.database().reference(fromURL: dbURL).child("bars").child(name)
storage = FIRStorage.storage()
// print(key)
let locationRef = FIRDatabase.database().reference(fromURL: dbURL).child("bar_locations")
//delete from bars
ref.parent?.removeValue() //This deleted the whole bars table
//delete from location
locationRef.child(name).removeValue()
let storageRef = storage?.reference(forURL: storageURL).child("bars").child(name).child("logo.jpg")
storageRef?.delete(completion: { (err) in
if err == nil {
completion(true, "Deleted")
} else {
//print(err?.localizedDescription ?? <#default value#>)
completion(false, err?.localizedDescription)
}
})
}
あなたはFirebaseデータベースの記憶データへの参照またはパスを格納することができます。また、[ファイルの削除](https://firebase.google.com/docs/storage/ios/delete-files)をチェックしてください – Jay
@Jay私の問題は私のストレージ内のファイルを削除することではありません。問題は、バーテーブルのオブジェクトを削除することです。バーテーブルはバーのIDで構成され、すべてのIDはバーの名前のような属性を持っています。ポイントは、バーの名前を知りたいのです。 –
問題は次の通りです。* firebase *内のオブジェクトを削除する*ので、firebase内のオブジェクトを削除すると仮定します。質問がテーブルからオブジェクトを削除する方法である場合(私はあなたがコード内のテーブルを持っていると仮定します)、質問を更新する必要があります。親ノード名を取得する方法を尋ねる場合は、[この質問]の回答を参照してください(http://stackoverflow.com/questions/40876616/how-to-check-for-value-in-firebase-that-is-自閉症の子どものために保有されているnoredirect = 1#comment68990882_40876616)。それは無関係の質問ですが、答えはあなたが使用したいかもしれないデザインパターンの例を示しています。 – Jay