0

こんにちは、FacebookとGoogleのログインでAndroidアプリを持っています。私はFirebase AuthとRealtimeデータベースを使用し、誰かがデータベースに存在するかどうかを確認します。ユーザーが初めてFacebookやGoogleでログインした場合、データベースにニックネームの新しいユーザーを作成したいと考えています。FacebookやGoogleのログインで初めてログインした場合、Firebaseユーザーをどのように保存できますか?

は、ここに私のコードです:

public void saveUserToDatabase(User newuser){ 

     DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference("users"); 

     mDatabase.addListenerForSingleValueEvent(new ValueEventListener() { 
      @Override 
      public void onDataChange(DataSnapshot dataSnapshot) { 

       String userId = mAuth.getCurrentUser().getUid(); //Holt sich die ID von Firebase 

       /* 
       * Es wird geprüft ob das Element schon in der Database existiert 
       * */ 

       if(dataSnapshot.hasChild(userId)){ 

        Log.d(DATABSE_FIREBASE,"Benutzer ist bereits in der Datenbank angelegt!"); 

       }else{ 
         Log.d(DATABSE_FIREBASE,"Benutzer ist noch nicht in der Datenbank angelegt!"); 

        // hier muss der nickname übergeben werden 

        mDatabase.child(userId).setValue(newuser); 

         Log.d(DATABSE_FIREBASE,"Ein neuer Benutzer mit der Email: " + newuser.getEmail() + " wurde in der Datenbank angelegt"); 
       } 
      } 

      @Override 
      public void onCancelled(DatabaseError databaseError) { 
       Log.d(DATABSE_FIREBASE,"Fehler beim Zugriff auf die Datenbank..."); 
       finish(); 
      } 
     }); 

しかし、ユーザーはデータベースに保存されません。私に何ができる?

+0

firebaseの初回ユーザーのニックネームを作成する必要がありますか? –

+0

スタックオーバーフローはリモートデバッガとして非効率的であることが知られています。ですから、助けを得るためには、自分でもっと仕事をして、何が起こっているか教えてください。デバッガでコードをステップ実行しましたか?それは 'onDataChange()'に達しますか?もしそうなら、どの支店に入るのですか? –

答えて

0

共有された環境設定を使用してその情報を保存します。その情報は、アプリがまだインストールされていても保持されます。

Context context = getActivity(); 
SharedPreferences sharedPref = context.getSharedPreferences(
getString(R.string.preference_file_key), Context.MODE_PRIVATE); 

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE) 


SharedPreferences.Editor editor = sharedPref.edit(); 
editor.putString(getString(R.string.user_saved), "google|facebook"); 
editor.commit(); 
//Read from Shared Preferences 

SharedPreferences sharedPref =getActivity().getPreferences(Context.MODE_PRIVATE); 
String choice = sharedPref.getString(getString(R.string.user_saved), defaultValue); 
if(choice.isEmpty()) Log.d("TAG","first time"); 
+0

保存されたキーが空である場合はonCreateをチェックインしてください。そうであれば初めてです。 – Remario

関連する問題