[解決済み] Firebase Databaseにキーが存在するかどうかを確認する方法は?重複
2022-02-15 06:52:32
質問
質問を投稿する前に、私の問題についての多くの回答を見ましたが、私はその回答を理解することができませんでした。 だから、私はどのように認証からのユーザーIDがデータベースのキーであるかどうかをチェックすることができるかを知りたいのですか?
CODE
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
user = FirebaseAuth.getInstance().getCurrentUser();
db = FirebaseDatabase.getInstance().getReference().child("UserInfo");
Thread mythread = new Thread() {
public void run() {
try {
while (splashActive && ms < splashTime) {
if (!paused)
ms = ms + 100;
sleep(100);
}
} catch (Exception e) {
} finally {
if (user != null) {
if (user.getUid().toString().equals(/* How to check if key exists or not*/)) {
Intent intent = new Intent(MainActivity.this, Chat.class);
startActivity(intent);
} else {
Intent intent = new Intent(MainActivity.this, UploadUserInfo.class);
startActivity(intent);
}
} else {
Intent intent = new Intent(MainActivity.this, RegisterUser.class);
startActivity(intent);
}
}
}
};
mythread.start();
}
}
画像にあるように、User UIDがFirebaseデータベースのキーであるかどうかをチェックしたいのです。
どのように解決するのですか?
このように確認することができます。
db.child(user.getUid()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()){
// user exists in the database
String userName = dataSnapshot.child("userName").getValue(String.class);
Intent intent = new Intent(MainActivity.this, Chat.class);
startActivity(intent);
}else{
// user does not exist in the database
Intent intent = new Intent(MainActivity.this, UploadUserInfo.class);
startActivity(intent);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
存在する スナップショットに非NULL値が含まれている場合、trueを返します。
関連
-
[解決済み】onCreateOptionsMenu(Menu メニュー)とは何ですか?)
-
[解決済み】Android Studioでマニフェストのマージに失敗し、複数のエラーが発生した。
-
[解決済み】getCheckedRadioButtonId()が無駄なintを返す?
-
[解決済み】Couldn't load memtrack module Logcat Error
-
[解決済み] AndroidのADBデバイスが不正に
-
[解決済み] TextViewでテキストを水平・垂直方向にセンタリングするには?
-
[解決済み] android.os.NetworkOnMainThreadException' を修正するにはどうすればよいですか?
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] インスタンス状態の保存を使用してアクティビティ状態を保存するにはどうすればよいですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】メソッド 'findViewById(int)' を解決できない。)
-
[解決済み】シンボル 'AppCompatActivity' を解決できない。
-
[解決済み】アンドロイドクロームブラウザのモバイルウェブアプリケーションのメニューでHTMLユニコード ☰が検出されない。
-
[解決済み] [Solved] Error "File google-services.json is missing from module root folder. これがないとGoogle Services Pluginは機能しません" [重複]。
-
[解決済み】Android Studioです。「プロジェクトが C ドライブに作成されている場合、「タスク ':app:mergeDebugResources' の実行に失敗しました。
-
[解決済み】新しいAVDを作成すると、CPU/ABIフィールドに「システムイメージがインストールされていません」と表示される。
-
[解決済み】SDKの場所がandroid studioで見つからない。
-
[解決済み] サポートされていないメソッドです。BaseConfig.getApplicationIdSuffix()がサポートされていません。
-
[解決済み] エラー - Android リソースのリンクに失敗しました (AAPT2 27.0.3 Daemon #0)
-
[解決済み] Androidでイメージビューの背景を透明に設定する