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

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

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

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

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

1363閲覧

Unity)RemoveValueを使いたい

navesanta

総合スコア198

Firebase

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

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2020/05/18 00:06

UnityでFirebase realtimedatabaseを使ったアプリを作成しています。

質問はrealTimeDatabase上のデータをクライアントアプリから
削除したいのですが削除するためのRemoveValueについてです。

realTimeDatabaseの格納は下記の通りです。

hogehoge.firebaseio ---test ----Ranking ---111 name taro mHoge 0 ---112 name jiro mHoge 1 ---113 name hanako mHoge 10

このデータの内mHogeが0のもののみ一斉に削除したく
どうやったらできるか色々調べたところRemoveValueでできるとのこと。
早速FirebaseDbTest.csスクリプトを作りました。

FirebaseDbTest.cs

using UnityEngine; using System; using System.Linq; using Firebase; using Firebase.Database; using Firebase.Unity.Editor; using UnityEngine.UI; using UnityEngine.SceneManagement; public class FirebaseDbTest : MonoBehaviour { DatabaseReference _FirebaseDB; //DBへ参照を持ったobjectを保持する。 Firebase.Auth.FirebaseUser _FirebaseUser; //Firebaseに接続した際の認証情報を保持する。 #pragma warning disable 649 // Start is called before the first frame update void Start(){ Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance; auth.SignInAnonymouslyAsync().ContinueWith(task => { if(task.IsCanceled){ Debug.LogError("SignInAnonymouslyAsync was canceled."); return; } if(task.IsFaulted){ Debug.LogError("SignInAnonymouslyAsync encountered an error:" + task.Exception); return; } _FirebaseUser = task.Result; Debug.LogFormat("User signed in succesfully: {0} ({1})", _FirebaseUser.DisplayName, _FirebaseUser.UserId); }); //Firebaseへの接続 FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://hogehoge.firebaseio.com/"); // _FirebaseDB = FirebaseDatabase.DefaultInstance.RootReference; _FirebaseDB = FirebaseDatabase.DefaultInstance.GetReference("test/Ranking"); } public void OnClickSetDB(){ _FirebaseDB.OrderByChild("mHoge").EqualTo(0).RemoveValue(); } }

しかし下記エラーが出ます。

Assets/Scripts/Rankings/FirebaseDbTest.cs(44,52): error CS1061: 'Query' does not contain a definition for 'RemoveValue' and no accessible extension method 'RemoveValue' accepting a first argument of type 'Query' could be found (are you missing a using directive or an assembly reference?)

「QueryにはRemoveValueはない」みたいなエラーが出ます。

ちなみにFirebaseの概要には削除にはRemoveValueを使えるよ見たいなことが
書いてあります。
https://firebase.google.com/docs/database/unity/save-data?hl=ja
namespaceがないのかと思いましたが
using Firebase;
using Firebase.Database;
using Firebase.Unity.Editor;
の3つがあります。
どこがおかしいのでしょうか?わかる方お教えください。
環境)
PC: mac
Unity2018.3.0f2
言語:C#

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

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

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

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

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

guest

回答1

0

ベストアンサー

_FirebaseDB.OrderByChild("mHoge").EqualTo(0).RemoveValue();
_FirebaseDB.OrderByChild("mHoge").EqualTo(0) はなにを返しているのか見てみればどうでしょう

その返しているものの RemoveValue();を実行してますが。

投稿2020/05/18 00:33

y_waiwai

総合スコア88042

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

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

navesanta

2020/05/18 01:23

RemoveValue()に対してエラーが出ます。そもそもRemoveValue()に必要なnamespaceは何でしょうか?
y_waiwai

2020/05/18 05:29

そのコードは、 var hoge= _FirebaseDB.OrderByChild("mHoge").EqualTo(0); hoge.RemoveValue(); と等価です hogeのナカミにはなにが入ってるんでしょうか
navesanta

2020/05/18 07:46

Debugで見ると「Firebase Database Query」となっています。 一番上の格納表にあるID「111」が該当すると思っており「111」のデータを 削除したいのですが・・・。
navesanta

2020/05/19 08:25

仰るとおり削除するターゲットがはっきりしていなかったようです。 試しに全部消しは _FirebaseDB.Child("mHoge").RemoveValue(); エラーが出ず出来ました。 エラー内容で勘違いしていました。これで解決です。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問