如何在数据库(Firebase)中进行身份验证后保存用户的电子邮件和名称?

时间:2017-06-17 14:08:21

标签: android firebase

我是Android新手,也是Firebase的新用户。我正在开发一个Android应用程序,用户可以通过电子邮件和密码创建自己的帐户。

如何将用户身份(如姓名,地址等)以及电子邮件保存到Firebase数据库?

这是我的代码,其中创建用户的电子邮件和密码以及有关要保存在数据库中的用户的额外信息的代码。

我的应用在创建新用户后崩溃,而且它也没有在数据库中存储信息。

auth.createUserWithEmailAndPassword(emailId, password)
    .addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {

                if (task.isSuccessful()) {

                    String user_id = auth.getCurrentUser().getUid();

                    DatabaseReference current_user_db = reference.child(user_id);

                    current_user_db.child("FNAME").setValue(nameF);

                    current_user_db.child("LNAME").setValue(nameL);

                    current_user_db.child("EMAIL").setValue(email);

                    progress.hide();

                    Intent intent = new Intent(MainActivity.this, ProfileActivity.class);

                    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

                    startActivity(intent);

                }

        }
    });

这是Log。

06-17 21:01:17.082 2262-2262/com.google.android.googlequicksearchbox:search I/MicroDetectionWorker: #onError(false)
06-17 21:01:22.096 2262-2262/com.google.android.googlequicksearchbox:search I/MicroDetectionWorker: Micro detection mode: [mDetectionMode: [1]].
06-17 21:01:22.097 2262-2262/com.google.android.googlequicksearchbox:search I/AudioController: Using mInputStreamFactoryBuilder
06-17 21:01:22.103 2262-4023/com.google.android.googlequicksearchbox:search I/MicroRecognitionRunner: Starting detection.
06-17 21:01:22.112 2262-3576/com.google.android.googlequicksearchbox:search I/MicrophoneInputStream: mic_starting com.google.android.apps.gsa.staticplugins.z.c@4a20126
06-17 21:01:22.112 1304-1304/? W/APM_AudioPolicyManager: getInputForAttr() failed opening input: samplingRate 16000, format 1, channelMask 10
06-17 21:01:22.112 2262-3576/com.google.android.googlequicksearchbox:search E/AudioRecord: Could not get audio input for session 857, record source 1999, sample rate 16000, format 0x1, channel mask 0x10, flags 0
06-17 21:01:22.114 2262-3576/com.google.android.googlequicksearchbox:search E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -22.
06-17 21:01:22.114 2262-3576/com.google.android.googlequicksearchbox:search E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object.
06-17 21:01:22.114 2262-3576/com.google.android.googlequicksearchbox:search I/MicrophoneInputStream: mic_started com.google.android.apps.gsa.staticplugins.z.c@4a20126
06-17 21:01:22.115 2262-3576/com.google.android.googlequicksearchbox:search E/ActivityThread: Failed to find provider info for com.google.android.apps.gsa.testing.ui.audio.recorded
06-17 21:01:22.116 2262-2262/com.google.android.googlequicksearchbox:search I/MicroDetectionWorker: onReady
06-17 21:01:22.130 2262-3576/com.google.android.googlequicksearchbox:search I/MicrophoneInputStream: mic_close com.google.android.apps.gsa.staticplugins.z.c@4a20126
06-17 21:01:22.130 2262-4023/com.google.android.googlequicksearchbox:search I/MicroRecognitionRunner: Detection finished
06-17 21:01:22.130 2262-4023/com.google.android.googlequicksearchbox:search W/ErrorReporter: reportError [type: 211, code: 524300]: Error reading from input stream
06-17 21:01:22.131 2262-2432/com.google.android.googlequicksearchbox:search I/MicroRecognitionRunner: Stopping hotword detection.
06-17 21:01:22.131 2262-4023/com.google.android.googlequicksearchbox:search W/ErrorProcessor: onFatalError, processing error from engine(4)
com.google.android.apps.gsa.shared.speech.a.g: Error reading from input stream
  at com.google.android.apps.gsa.staticplugins.recognizer.i.a.a(SourceFile:342)
  at com.google.android.apps.gsa.staticplugins.recognizer.i.a$1.run(SourceFile:1367)
  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
  at java.util.concurrent.FutureTask.run(FutureTask.java:237)
  at com.google.android.apps.gsa.shared.util.concurrent.a.ak.run(SourceFile:66)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
  at java.lang.Thread.run(Thread.java:761)
  at com.google.android.apps.gsa.shared.util.concurrent.a.ad$1.run(SourceFile:85)
Caused by: com.google.android.apps.gsa.shared.exception.GsaIOException: Error code: 393238 | Buffer overflow, no available space.
  at com.google.android.apps.gsa.speech.audio.Tee.g(SourceFile:2531)
  at com.google.android.apps.gsa.speech.audio.ap.read(SourceFile:555)
  at java.io.InputStream.read(InputStream.java:101)
  at com.google.android.apps.gsa.speech.audio.al.run(SourceFile:362)
  at com.google.android.apps.gsa.speech.audio.ak$1.run(SourceFile:471)
  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
  at java.util.concurrent.FutureTask.run(FutureTask.java:237)
  at com.google.android.apps.gsa.shared.util.concurrent.a.ak.run(SourceFile:66)
  at com.google.android.apps.gsa.shared.util.concurrent.a.ax.run(SourceFile:139)
  at com.google.android.apps.gsa.shared.util.concurrent.a.ax.run(SourceFile:139)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) 
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) 
  at java.lang.Thread.run(Thread.java:761) 
  at com.google.android.apps.gsa.shared.util.concurrent.a.ad$1.run(SourceFile:85) 
06-17 21:01:22.131 2262-4023/com.google.android.googlequicksearchbox:search I/AudioController: internalShutdown
06-17 21:01:22.133 2262-2262/com.google.android.googlequicksearchbox:search I/MicroDetector: Keeping mic open: false
06-17 21:01:22.133 2262-2262/com.google.android.googlequicksearchbox:search I/MicroDetectionWorker: #onError(false)
06-17 21:01:22.133 2262-4022/com.google.android.googlequicksearchbox:search I/DeviceStateChecker: DeviceStateChecker cancelled

1 个答案:

答案 0 :(得分:1)

尝试使用HashMap(个人意见,我发现它更具可读性)这是我的更新用户设置的代码,整个功能通过按钮调用,希望这会有所帮助。

public function search_input(){
        $input = Input::get('search_input');
        $city = Input::get('city');
        $data = Apply::where('exam_venue', '=', "$input")
                ->where('city_applied', '=', "$city")->get();
        if (isset($_POST['save'])) {

        }
        return View::make('admin/exam/edit',compact('data'));
    }