1

データを取得すると、角かっこ { と - JSDHGJDGJJSKA などの一意の ID が含まれます。たとえば、出力をよりクリーンにして角かっこを取り除きたい場合は、次のようになります。

{-JfFQQRYnhiKeuN5ERGX={msg=Monday},-JfFQAhQQWIFAUuV1nD4={msg=this is test}}

角かっこと msg という単語を取り除き、メッセージの 1 つだけをランダムに取得したいと考えています。

ランダムなメッセージを取得した場合の出力を次のようにします。

Monday

ランダムに別のものを拾うと

this is test

これを達成する方法についてのアイデアは大歓迎です。

4

3 に答える 3

3

これにより、質問で示したオブジェクトからランダムなメッセージが取得されます。

function getRandomMessage(data) {
   if( !data ) { return null; }
   var keys = Object.keys(data);
   var randomKey = keys[ Math.floor(Math.random()*keys.length) ];
   return data[randomKey];
}

これは、少数のレコードがあることを前提としていることを覚えておいてください。数千に達し始めた場合は、データ セット全体を取得するだけでなく、より堅牢なソリューションが必要になります。

于 2015-01-12T18:32:37.910 に答える
1

これを使用すると、たとえばデータを取得できました。私は本として保存します - >タイトル:「死の本」タイトルを取得するコードは次のとおりです:データの取得-

String title = (String) snapshot.child("title").getValue();

使用した後は機能しましたが、プッシュを使用しなかったのは、プッシュが一意のIDとそれを処理するレベルの複雑さを作成するためです。データの保存-

                Map<String, Object> title= new HashMap<String, Object>();
                title.put("title", "This is a working message");
                f.child("Book").updateChildren(title);

そしてすべてがうまくいきました。これらの問題を抱えているすべての人に役立つことを願っています。update children を使用すると、ID の自動インクリメントを使用できます。

于 2015-01-11T22:31:28.897 に答える
0

文字列でデータを取得していますか?文字列を使用している場合は簡単です。たとえば、置換の方法を使用できます: yourString.replace("a","b")

于 2015-01-09T21:26:39.837 に答える