質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

437閲覧

Firebase RealtimeDatabaseへの登録について

dev_saeko

総合スコア7

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2018/02/05 15:43

編集2018/02/05 15:45

前提・実現したいこと

FirebaseのRealtimeDatabaseを使ってデータを登録したいのですが、
思うような構造になってくれません。。><

FireBaseDBUniqueKeyの子要素としてデータを登録するアドバイスをいただきたいです。。
また、既に登録されているtelだった場合は上書きか何もしないようにしたいです。

発生している問題

こうしたい!! user ┗12345 ←userId  ┗gjjgksuu45jgjsle ←FireBaseDBUniqueKey   ┗0300000000 ←tel  ┗jjgu8gjsoe9j3gjj   ┗09000000000 ┗67890 ←userId  ┗hjkksmjbudlsl44je   ┗07000000000 のですが、 以下のようになってしまいます。 こうなる... user ┗12345  ┗gjjgksuu45jgjsle : 0300000000  ┗jjgu8gjsoe9j3gjj : 09000000000 ┗67890  ┗hjkksmjbudlsl44je : 07000000000

該当のソースコード

java

1String tel = FirebaseInstanceId.getInstance().getToken(); 2FirebaseDatabase database = FirebaseDatabase.getInstance(); 3DatabaseReference myRef = database.getReference(); 4String FireBaseDBUniqueKey = myRef.push().getKey(); 5 6myRef.child("user").child(userId).child(FireBaseDBUniqueKey).setValue(tel);
現在設定中のFireBaseDBルール { "rules": { ".read": false, ".write": false, "user" : { "$userId" : { ".read": true, ".write": true, } } } }

補足情報

android studio 3.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

keyだけで存在することはできないので,0300000000: trueあるいは0300000000: 1のようなかたちで書き込みましょう.

既に登録されているtelだった場合は上書きか何もしないようにしたい

FireBaseDBUniqueKeyを使わず,userId直下に書き込みましょう.
setValue(hoge)で実現できます.
Android でのデータの読み取りと書き込み

投稿2018/02/05 22:35

Yatima

総合スコア1159

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dev_saeko

2018/02/06 00:15

ありがとうございます! ひとまずいただいたURL見てやって見ます!
dev_saeko

2018/02/06 01:58

>keyだけで存在することはできないので,0300000000: trueあるいは0300000000: 1のようなかたちで書き込みましょう こちら、できました!! >FireBaseDBUniqueKeyを使わず,userId直下に書き込みましょう. >setValue(hoge)で実現できます. 質問なのですが、FireBaseに同じtelがあるかないかチェックした上で、上記の処理を書く感じでしょうか。。 すみませんが、お教えいただけたら嬉しいです。
dev_saeko

2018/02/06 02:06

あああ!!!意味わかりました!! できました!! ありがとうございました♪
Yatima

2018/02/06 02:17

解決したのであれば何よりです.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問