[解決済み] Google firebaseで子供が存在するかどうかを確認する
2022-02-17 18:29:13
質問
私のアプリでは、firebase上のデータベースの与えられた要素が、与えられた名前の子要素を持つかどうかをチェックする必要があります。私はそれが線の上に何かを使用することによって行われることを望みました。
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
if (rootRef.childExists("name")) {
//run some code
}
検索してみましたが、役に立つものは見つかりませんでした。
どのように解決するのですか?
編集2:上に載せる価値あり。 これは、データが存在するかどうかを確認するために、このスナップショットで実際にすべてのデータをダウンロードしていることを述べておく価値があると思います。ここで気をつけなければならないことがあります。参照先が巨大な場合(例えば 実際に その場合、存在確認に使用できる深いノードを見つけるか、データ構造を別の方法で設計して効率的な確認ができるようにする必要があります。
データベース参照は、事実上そのデータのURLです。あなたは、実際に 得る のデータから、子が存在するかどうかを確認します。このため、あなたが探していると思われるメソッドは データスナップショット .
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
rootRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
void onDataChange(DataSnapshot snapshot) {
if (snapshot.hasChild("name")) {
// run some code
}
}
});
さて、このデザインパターンは少し違和感があります。name"が存在するかどうかを確認するためだけに、データベース全体を読み込んでいるのです。をリッスンすることで、これをもう少し効率的にすることができます。
rootRef.child("name")
をチェックし、さらに
snapshot.exists()
.
を行おうとしている場合
バリデーション
このコードは、コントロールフローではなく、以下のようなコードを
rules.json
.
編集 : もともと間違った関数名を使っていました(hasChildの代わりにchildExists)。
関連
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み】スレッド「main」での例外 java.lang.StringIndexOutOfBoundsException: 文字列のインデックスが範囲外です。0 [閉店]
-
[解決済み】 java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver [重複]。
-
[解決済み】Javaを包含するクラスではないのか?
-
[解決済み】Java LinkedListでNodesを使用する
-
[解決済み] Hide Utility Class Constructor : ユーティリティクラスはパブリックまたはデフォルトコンストラクタを持つべきではありません。
-
[解決済み] java.sql.SQLException を取得しました。ResultSet が終了した後の操作は許可されません。
-
[解決済み] instanceofを呼び出す前にnullチェックは必要ですか?
-
[解決済み] Javaでファイルが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] 文字列を繰り返す簡単な方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Hibernateエラー:同じ識別子値を持つ別のオブジェクトがすでにセッションに関連付けられました。
-
[解決済み】"実引数リストと形式引数リストの長さが異なる"
-
[解決済み】imageio.IIOException: 入力ファイルが読み込めない
-
[解決済み】Doubleはdereferencedできない?
-
[解決済み】"|="の意味は何ですか?(パイプ等号演算子)
-
[解決済み】Eclipseで「公開型 <<classname>> は独自のファイルで定義する必要があります」エラー【重複あり
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。
-
[解決済み] エラー - trustAnchors パラメータは空であってはなりません。
-
[解決済み】どういう意味か。Serializableクラスがstatic final serialVersionUIDフィールドを宣言していないとは?重複している] [重複している] [重複している] [重複している
-
[解決済み] "java.nio.charset.MalformedInputException" を避けるために、すべての包括的なCharset。入力の長さ= 1"?