2017-06-17 5 views
0

私はAndroidが新しく、Firebaseも新しくなっています。私はユーザーが電子メールとパスワードで自分のアカウントを作成するAndroidアプリを開発しています。認証後にユーザーの電子メールと名前をデータベース(Firebase)に保存する方法は?

名前、住所などのユーザーIDを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); 

           } 

         } 
        }); 

     } 
    }); 

ここにログがあります。

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 [email protected] 
    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 [email protected] 
    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 [email protected] 
    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 
+0

ええ、そう、あなたはうまくいくと思いますか?残りの詳細を電子メール、名前などのために保存してください。 –

+0

@DushyantSuthar今度はコードが少し変更されました。私のアプリはクラッシュしています –

+0

ログを投稿できますか? – Asama

答えて

0

これが役に立てば幸い、これはユーザー設定を更新するための私のコードで、全体の機能は、ボタンを介して呼び出さなっている(私はそれがより読み見つける個人的な意見)HashMapを使用してみてください。

 private void updatesettings() { 
       String UserName = username.getText().toString().toLowerCase().trim(); 
       String PhoneNumber= pno.getText().toString(); 

       FirebaseUser user = mauth.getCurrentUser(); 
       String uid = user.getUid(); 

     //this is to enter all the details under the UID of currently logged in user 

       dbr = FirebaseDatabase.getInstance().getReference().child("Users").child(uid); 

       HashMap<String, String> userMap = new HashMap<String, String>(); 
       userMap.put("name", UserName); 
       userMap.put("phone number", PhoneNumber); 
       userMap.put("status", "lun aadmi hu status daalne ka time he ni mila"); 
       userMap.put("image", "default"); 
       userMap.put("thumbnail", "default"); 

       dbr.setValue(userMap).addOnCompleteListener(new OnCompleteListener<Void>() { 
        @Override 
        public void onComplete(@NonNull Task<Void> task) { 
         if(task.isSuccessful()){ 
//       Toast.makeText(UpdateUserSettings.this, "Your settings have been updated", Toast.LENGTH_LONG).show(); 
          startActivity(new Intent(UpdateUserSettings.this, MainActivity.class)); 
         } 
         else{ 
          Toast.makeText(UpdateUserSettings.this, task.getException().getMessage(), Toast.LENGTH_LONG).show(); 
         } 
        } 
       }); 
関連する問題