5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Flutter】Realtime Database のデータ操作方法

Last updated at Posted at 2023-10-30

概要

貴重な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}
5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?