/ / Swift 3 + Firebase:配列内の値が存在するかどうかを確認しますか? -ios、swift、firebase、swift3、firebase-database

Swift 3 + Firebase:配列内の値が存在するかどうかを確認します。 - イオス、スウィフト、ファイアベース、swift3、firebase-database

FBデータベースに個々の投稿を保持する投稿ノードがあります。これらの投稿にはそれぞれの配列があります users_liked ランダムに生成されたキーがあり、値は現在のユーザーです uid。私の問題は、この配列に値(uid)がすでに存在するかどうかを確認したい場合は、何かを行うことです。それ以外の場合

どうすればこれを達成できますか?私のJSONツリーは下にあります。ありがとうございました。 ここに画像の説明を入力

回答:

回答№1は2

そのパスのスナップショットをリクエストして使用するだけです .exists().

var postid = "-KGNY..."
var uid = FIRAuth.auth()?.currentUser?.uid
var ref = FIRDatabase.database().reference()

ref.child("posts").child(postid).child("users_liked").child(uid!)
.observeSingleEvent(of: .value, with: { (snapshot) in
// Get user value
if snapshot.exists() == true {
print("exists")
}
else {
print("does not exist")
}
}) { (error) in
print(error.localizedDescription)
}

(私のひどいSwift構文を許してください。これはまだ私が話す言語ではありません)


回答№2の場合は0

私はあなたのためにちょっとしたコードを書いていました、そしてそれから私はあなたがSwiftを望んでいることに気づき、Java:Sを使用しています。とにかく、概念的なアウトラインで十分です。 「users_liked」ノードへのFirebase Database参照を作成し、この参照に単一のイベント値リスナーを設定します。次に、datasnapshotを同等の「foreach」ループに迅速に渡し、datasnapshotの各子(datasnapshot.getChildren())に新しいデータスナップショット「dsChild」を作成します。最後に、dsChild.getValueを実行し、equalTo()を使用して値が存在するかどうかを確認することにより、各項目を確認します。これがお役に立てば幸いです。申し訳ありませんが、Swiftで書き出すことができませんでした。