😆
[Android Studio] Realtime Database にデータを書き込む(上書き・文字置き換え)
はじめに
Javaコード上でデータをDBにセットした際に、DB上のJSONでは構造がどのように変化するのか調査したのでその時のメモ。
詳細は、以下サイトに記載されているようだが、容量つかめなかったので実験しました。
今回使用したコード
ReadAndWriteSnippets.java
public void writeNewUser(String userId, String name, String email) {
User user = new User(name, email);
mDatabase.child("users").child(userId).setValue(user);
}
User.java
@IgnoreExtraProperties
public class User {
public String username;
public String email;
public User(String username, String email) {
this.username = username;
this.email = email;
}
}
初期Jsonコード
db.json
https://~~~~.firebaseio.com/:null
データ書き込み
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ReadAndWriteSnippets readAndWriteSnippets = new ReadAndWriteSnippets();
readAndWriteSnippets.writeNewUser("1", "one", "one@gmail.com");
}
db.json
https://~~~~.firebaseio.com/
user
1
email:"one@gmail.com"
username:"one"
データ書き込み
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ReadAndWriteSnippets readAndWriteSnippets = new ReadAndWriteSnippets();
readAndWriteSnippets.writeNewUser("1", "one", "one@gmail.com");
readAndWriteSnippets.writeNewUser("2", "two", "two@gmail.com"); // 追加
}
db.json
https://~~~~.firebaseio.com/
user
1
email:"one@gmail.com"
username:"one"
2
email:"two@gmail.com"
username:"two"
データ書き込み
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ReadAndWriteSnippets readAndWriteSnippets = new ReadAndWriteSnippets();
readAndWriteSnippets.writeNewUser("1", "two", "two@gmail.com"); // 変更
readAndWriteSnippets.writeNewUser("2", "two", "two@gmail.com");
}
db.json
https://~~~~.firebaseio.com/
user
1
email:"two@gmail.com"
username:"two"
2
email:"two@gmail.com"
username:"two"
データ書き込み(db.jsonの内容を一度全削除)
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ReadAndWriteSnippets readAndWriteSnippets = new ReadAndWriteSnippets();
readAndWriteSnippets.writeNewUser("1", "one", "one@gmail.com"); // 変更
readAndWriteSnippets.writeNewUser("1", "two", "two@gmail.com"); // 変更
}
db.json
https://~~~~.firebaseio.com/
user
1
email:"two@gmail.com"
username:"two"
一つの子(ここではuserID)に対して、1つのデータセットしか登録できない模様。
(上書きされたっぽい)
Discussion