2016-07-03 14 views
0

私は親ノード "posts"を持っており、この親の下にある子の数を取得する必要があります。Firebase getChildrenCount()が削除されたデータを数えています

  1. 「投稿」ノード全体を削除します。
  2. 内部に1人の子供がいる「投稿」を再作成します。 .getChildrenCount()を使用し
  3. databaseRef.childrenからスナップショット( "ポスト")の
  4. .getChildrenCount()を返す12
  5. 繰り返しステップ1(この時点で1になるように仮定) - 4.この.getChildrenCount()戻り時間13.

上記のこの試行では、削除された子どもがまだカウントに影響していることがわかります。おそらく、Firebaseには、子供が削除されたときにリセットされない内部カウンタがあります。

誰でもこの問題に遭遇しますか?解決する方法?

+0

'ChildEventListener'を追加するときに13回呼び出されるかどうかテストできますか?ローカルデータベースがサーバーから変更をフェッチするようにするには、このリスナーを追加する必要があります。 – shem

+0

@shemこんにちはShem、本当の問題のようにクライアント側にあるようです。私は私の質問に答えています。チル:) – Terrence

+1

あなたはディスクパーシスタンスオプションを有効/無効にしようとしましたか? [Androidのオフライン機能を有効にする](https://firebase.google.com/docs/database/android/offline-capabilities) 'FirebaseDatabase.getInstance()。setPersistenceEnabled(false);' またはデータを同期させたままにする 'ref。 keepSynced(true); ' – Wilik

答えて

1

解決策が見つかりました。 この問題の原因となっているのクライアント側には、キャッシュが存在する可能性があります(私の場合は、クライアントとしてAndroid)。 電話からアプリを削除してからインストールしてからもう一度を実行すると、子供の数はに戻ります。

Firebaseの誰かがこの動作を説明してくれて、これに対処する方法を教えてください。とにかくキャッシュをクリアするには?既に生産中で、ユーザーにアプリの再インストールを依頼するだけでは不可能な場合、これは本当の苦痛になる可能性があります。

関連する問題