안드로이드 Firebase
아이디와 비밀번호 등록하는 예제
후에 잊어버렸을 때를 위해 메모해둔다
MainActivity
package test.roharon.com.myapplication;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import java.util.Random;
public class MainActivity extends AppCompatActivity {
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("Test");
//데이터베이스의 Test 에 지정.
TextView textView;
TextView userId;
TextView password;
private void writeNewUser(String userId,String password)
{
User user = new User(userId, password);
myRef.child("users").child(userId).setValue(user);
// Test/users/유저아이디/User클래스 변수들
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView=findViewById(R.id.helloText);
Button button = (Button)findViewById(R.id.submit);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
userId = (TextView)findViewById(R.id.userId);
password = (TextView)findViewById(R.id.password);
writeNewUser(userId.getText().toString(),password.getText().toString());
}
});
// 버튼을 눌렀을때 userId와 password를 입력받고 writeNewUser함수에 넘긴다.
//그럼 User클래스 생성과 함께 Firebase에 저장된다.
// ! 여기서 오류났었는데 .getText() 이것만 하고 .toString()은 안해줘서 발생했다.
}
protected void onStart()
{
super.onStart();
myRef.addValueEventListener(new com.google.firebase.database.ValueEventListener() {
@Override
public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
String name = dataSnapshot.child("main").getValue(String.class);
textView.setText(name);
// 이것은 공지사항 기능으로 넣은거다.
// userId와 password는 액티비티 생성 후에 등록되지만 공지사항은 시작부터 나와야 하기때문.
// /Test/main 의 Value값을 부른다.
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
}
파이어베이스 json 구조
{
"Test" : {
"main" : "안녕하세요 공지입니다",
"users" : {
"sss" : {
"password" : "패스워드aaaa",
"username" : "sss"
},
"내아이디" : {
"password" : "내패스워드",
"username" : "내아이디"
}
}
}
}
User클래스
package test.roharon.com.myapplication;
import com.google.firebase.database.IgnoreExtraProperties;
/**
* Created by roharon on 2018-02-17.
*/
@IgnoreExtraProperties
public class User {
public String username;
public String password;
public User() {
// Default constructor required for calls to DataSnapshot.getValue(User.class)
}
public User(String username, String password) {
this.username = username;
this.password = password;
}
}
레이아웃
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="test.roharon.com.myapplication.MainActivity">
<TextView
android:id="@+id/helloText"
android:layout_width="208dp"
android:layout_height="154dp"
android:layout_marginStart="88dp"
android:layout_marginTop="320dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/userId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="28dp"
android:layout_marginTop="86dp"
android:ems="10"
android:inputType="textPersonName"
android:text="아이디"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/password"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="40dp"
android:layout_marginStart="28dp"
android:ems="10"
android:inputType="textPersonName"
android:text="패스워드"
app:layout_constraintBottom_toTopOf="@+id/submit"
app:layout_constraintStart_toStartOf="parent" />
<Button
android:id="@+id/submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="28dp"
android:text="등록"
app:layout_constraintBottom_toTopOf="@+id/helloText"
app:layout_constraintStart_toStartOf="parent" />
</android.support.constraint.ConstraintLayout>
'Front-end > 안드로이드' 카테고리의 다른 글
안드로이드 drawble, wrap|match (0) | 2018.02.18 |
---|
댓글