如果他第一次使用Facebook或Google登录进行登录,我如何保存Firebase用户?

时间:2017-03-01 17:35:21

标签: android firebase firebase-realtime-database firebase-authentication google-login

你有一个Android应用程序与Facebook和谷歌登录。我使用Firebase Auth和Realtime数据库,并想检查数据库中是否存在某人。如果用户首次使用Facebook或Google登录,我想在数据库中使用昵称创建新用户。

这是我的代码:

 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();
            }
        });

但是用户不会保存在数据库中。我该怎么办?

1 个答案:

答案 0 :(得分: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");