0

現在、私はfirebase電子メール認証を使って新しいユーザを作成することに成功していますが、ユーザ名、住所などの個人情報をfirebaseデータベースに追加します。私は電子メール認証からの子をノードへの子として使用するすべての研究を行ったが、コードはまだデータベースに接続していてもアンドロイドスタジオでもデータベースに何も挿入されていない。だから、誰もこの質問を解決する方法について私に助言をお願いできますか?firebase電子メール認証firebaseデータベースにユーザ名と詳細を追加

package com.example.rex.ota20; 

import android.content.Intent; 
import android.support.annotation.NonNull; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 
import com.google.android.gms.tasks.OnCompleteListener; 
import com.google.android.gms.tasks.Task; 
import com.google.firebase.auth.AuthResult; 
import com.google.firebase.auth.FirebaseAuth; 
import com.google.firebase.auth.FirebaseUser; 
import com.google.firebase.database.DatabaseReference; 
import com.google.firebase.database.FirebaseDatabase; 
import java.util.HashMap; 
import java.util.Map; 

public class Register extends AppCompatActivity { 

private FirebaseAuth auth; 
private EditText run, rpw,re; 
//private EditText rcfpw, rage, , rpn, ra, rpc; 
//private RadioButton rbm, rbfm, rbstd, rbtt; 
private String usnm, pswd, email, uid; 
private FirebaseDatabase db; 
private DatabaseReference ref; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_register); 

    auth = FirebaseAuth.getInstance(); 
    db = FirebaseDatabase.getInstance(); 
    ref = db.getReference(); 
    FirebaseUser user = auth.getCurrentUser(); 
    uid = user.getUid();//getuser id 

    run = (EditText) findViewById(R.id.Run); 
    rpw = (EditText) findViewById(R.id.Rpw); 
    //rcfpw = (EditText) findViewById(R.id.Rcpw); 
    //rage = (EditText) findViewById(R.id.Rage); 

    //rbm = (RadioButton) findViewById(R.id.rbmale); 
    //rbfm = (RadioButton) findViewById(R.id.rbfemale); 

    re = (EditText) findViewById(R.id.Re); 
    //rpn = (EditText) findViewById(R.id.Rpn); 
    //ra = (EditText) findViewById(R.id.Ra); 
    //rpc = (EditText) findViewById(R.id.Rpc); 

    //rbstd = (RadioButton) findViewById(R.id.rbstd); 
    //rbtt= (RadioButton) findViewById(R.id.rbtt); 

    final Button br = (Button) findViewById(R.id.Rbt); 



    br.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      //if(!TextUtils.isEmpty(usnm) || !TextUtils.isEmpty(pswd) || !TextUtils.isEmpty(email)){ 
      usnm = run.getText().toString().trim(); 
      pswd = rpw.getText().toString().trim(); 
      //confirmpw = rcfpw.getText().toString().trim(); 
      email = re.getText().toString().trim(); 
      register(usnm, pswd, email); 

      //}// end of validate 
     }//end of onclick 
    }); 
} 

private void register (final String un, final String pw, final String em){ 
    Task<AuthResult> authResultTask = auth.createUserWithEmailAndPassword(em, pw).addOnCompleteListener(new OnCompleteListener<AuthResult>() { 
     @Override 
     public void onComplete(@NonNull Task<AuthResult> task) { 

      if (task.isSuccessful()) { 
       DatabaseReference dbref = FirebaseDatabase.getInstance().getReferenceFromUrl("https://otapp-61bef.firebaseio.com/").child("users"); 
       uid = dbref.push().getKey(); 
       Toast.makeText(Register.this, "Success Registed", Toast.LENGTH_LONG).show(); 
       Intent i = new Intent(Register.this, StudentHomePage.class); 
       startActivity(i); 
       finish(); 
      } else { 
       Toast.makeText(Register.this, "Error", Toast.LENGTH_LONG).show(); 
      } 
     } 
    }); 
}// end of signup 

/*private void generateUser (String username, String password, String email){ 
    User u = new User (username, password, email); 
    dbref.child("users").setValue(u); 
}*/ 
} 

ルール

{ 
"rules": { 
    ".read": true, 
    ".write": true 
    } 
} 

答えて

1

作業XAMPLEある:

Userクラス

@IgnoreExtraProperties 
public class User { 

    private String name; 
    private String surname; 
    private String phone; 

    public User() { 

    } 

    public User(String phone) { 
     this.phone = phone; 
    } 

    public User(String name, String surname, String phone) { 
     this.name = name; 
     this.surname = surname; 
     this.phone = phone; 
    } 

    public String getName() { 
     return name; 
    } 

    public String getSurname() { 
     return surname; 
    } 

    public String getPhone() { 
     return phone; 
    } 
} 

アクティビティメソッド

private void writeNewUser(DatabaseReference databaseReference, String id, String name, String surname, String phone) { 
     User user = new User(name, surname, phone); 
     databaseReference.child(id).setValue(user); 
    } 
+0

私は自分の問題を見つけました...>< –

+0

写真のように直接データベースに直接挿入することもできますか? –

+0

をFirebaseストレージに保存することができます。別の動作例が必要な場合は、私に連絡してください –

関連する問題