이번 시간에는 Firebase Realtime Database에
데이터를 추가하고, 다시 호출해서 ListView를
통해 보여주는 읽기, 쓰기 예제를 만들어 보겠습니다.
Firebase Realtime Database 설정은 아래
링크로 가셔서 따라 하시면 됩니다.
2022.03.09 - [안드로이드] - [안드로이드] Firebase 시작하기 실시간 데이터베이스 Realtime Database (간단한 데이터 읽기, 쓰기) part1
- 설명 -
1. EditText: 등록할 데이터 입력창
2. Button: 리스트뷰와 realtime database에 데이터 입력 기능
3. ListView: 등록한 데이터 보여주는 뷰
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:gravity="center_horizontal"
android:orientation="vertical"
android:padding="16dp"
tools:context=".MainActivity">
<EditText
android:id="@+id/name_edit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="name" />
<Button
android:id="@+id/add_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:text="쓰기" />
<ListView
android:id="@+id/list_View"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="8dp" />
</LinearLayout>
- 설명 -
1. databaseReference.child(키값). child("이름"). setValue("데이터 값")
databaseReference에 키값, 이름값, 데이터 값을 입력하면 저장된다.
2. addValueEventListener를 통해 데이터를 가져온다.
3. 데이터 호출 오류 시 onCancelled가 호출된다.
public class MainActivity extends AppCompatActivity {
ArrayList<String> arrayList = new ArrayList<>();
ArrayAdapter<String> adapter;
FirebaseDatabase firebaseDatabase;
DatabaseReference databaseReference;
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//컴포넌트 변수에 담기
EditText nameEdit = findViewById(R.id.name_edit);
Button addBtn = findViewById(R.id.add_btn);
listView = findViewById(R.id.list_View);
//어뎁터 초기화
adapter = new ArrayAdapter<>(this,
android.R.layout.simple_list_item_1, arrayList);
//데이터베이스 초기화
firebaseDatabase = FirebaseDatabase.getInstance();
//레퍼런스 초기화
databaseReference = firebaseDatabase.getReference().child("Data");
//데이터 조회
getValue();
//데이터 등록
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//입력값 변수에 담기
String sName = nameEdit.getText().toString();
//키 생성
String sKey = databaseReference.push().getKey();
//sKey가 null이 아니면 sKey값으로 데이터를 저장한다.
if(sKey != null){
databaseReference.child(sKey).child("value").setValue(sName);
//입력창 초기화
nameEdit.setText("");
}
} //onClick
});//setOnClickListener
}//onCreate
/**
* 파이어베이스에서 데이터 가져오기
*/
private void getValue() {
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
//리스트 초기화
arrayList.clear();
for(DataSnapshot dataSnapshot : snapshot.getChildren()){
//데이터 가져오기(value 이름으로 된 값을 변수에 담는다.
String sValue = dataSnapshot.child("value").getValue(String.class);
//리스트에 변수를 담는다.
arrayList.add(sValue);
}
//리스트뷰 어뎁터 설정
listView.setAdapter(adapter);
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
Toast.makeText(MainActivity.this, "error: " + error.getMessage(),
Toast.LENGTH_SHORT).show();
}
});
}//getValue
}
2022.03.08 - [안드로이드] - [안드로이드] 달력 (DatePicker) 버튼(Button)으로 호출하는 방법
2022.03.07 - [안드로이드] - [안드로이드] 버튼이 보라색으로 고정된 상황 쉽게 해결하는 방법
2022.03.01 - [안드로이드] - [안드로이드] 온보딩(Onboarding) 페이지 쉽게 만드는 방법
[안드로이드] Firebase Realtime Database RecyclerView 사용자 등록하는 방법 (0) | 2022.03.12 |
---|---|
[안드로이드] Firebase Realtime Database ListView JSON 수정, 삭제 part3 (0) | 2022.03.11 |
[안드로이드] Firebase 시작하기 실시간 데이터베이스 Realtime Database (간단한 데이터 읽기, 쓰기) part1 (0) | 2022.03.09 |
[안드로이드] 달력 (DatePicker) 버튼(Button) 으로 호출하는 방법 (0) | 2022.03.08 |
[안드로이드] 버튼이 보라색으로 고정된 상황 쉽게 해결하는 방법 (0) | 2022.03.07 |
댓글 영역