概要
貴重なFirebase × Flutterの記事です。
この記事では、FirebaseのRTDBからデータの取得、登録、削除の方法を紹介します。
こんな人に読んでほしい
- Flutter初学者の方
- FlutterでFirebaseのRTDBを交えて実装を考えている人
- Firebaseの公式ドキュメントを読んでもFlutterでのサンプルコードがなくどうすればいいか困っている方
RTDBのデータ構造
users
⌙111111
⌙name:'sample1'
⌙age:24
⌙gender:'M'
⌙222222
⌙name:'sample2'
⌙age:21
⌙gender:'N'
データの登録
データの登録には2パターン存在します。
1つ目はsetメソッドを使用するパターン
setメソッドを使用すると、データの有無にかかわらず、指定したパス以下のデータが完全に上書きされます。
final streamRef = FirebaseDatabase.instance.ref('users');
streamRef.child('111111').set({
'from':'Tokyo',
'sports':'soccer',
'food':'hamburger',
});
実行後
users
⌙111111
⌙from:'Tokyo'
⌙sports:'soccer'
⌙food:'hamburger'
⌙222222
⌙name:'sample2'
⌙age:21
⌙gender:'N'
2つ目はupdateメソッドを使用するパターン
updateメソッドはsetメソッドと違って、指定したパス以下に渡したデータのkeyが存在していたら、そのkeyのvalueを上書きします。
もし、渡したデータのkeyが存在しなかった場合、新しいデータとして追加されます。
final streamRef = FirebaseDatabase.instance.ref('users');
streamRef.child('222222').update({
'name':'sample3',
'age':25,
'work':'engineer'
});
実行後
users
⌙111111
⌙from:'Tokyo'
⌙sports:'soccer'
⌙food:'hamburger'
⌙222222
⌙name:'sample3'
⌙age:25
⌙gender:'N'
⌙work:'engineer'
データの削除
削除にはremoveメソッドを使用します。
使い方は簡単で、削除したいパスを指定し、removeメソッドを呼び出すだけです。
final streamRef = FirebaseDatabase.instance.ref('users');
streamRef.child('222222').remove();
実行後
users
⌙111111
⌙from:'Tokyo'
⌙sports:'soccer'
⌙food:'hamburger'
データの参照
データの参照もいくつか方法がありますが、今回は最も簡単なonceメソッドを使用した方法を紹介します。
final streamRef = FirebaseDatabase.instance.ref('users');
streamRef.child('111111').once().then(
(value){
if(value.snapshot.exist){
print(value.snapshot.value);
}
}
);
実行結果
{from:Tokyo, sports:soccer, food:hamburger}