アイテムの現在の視聴者数を追跡するにはどうすればよいですか?

ホルガーシンドベク

私はiPhoneアプリを持っています。ここでは、現在アイテムを表示している人の数を表示したいと思います。

現在閲覧中

私は、ユーザーがビューに入るときにこのトランザクションを実行することでそれを行っています(以下のRubymotionコードですが、Firebase iOS SDKとまったく同じように機能します)。

listing_reference[:listings][self.id][:viewing_amount].transaction do |data|
  data.value = data.value.to_i + 1
  FTransactionResult.successWithValue(data)
end

そして、彼らがビューを出るとき:

listing_reference[:listings][self.id][:viewing_amount].transaction do |data|
  data.value = data.value.to_i + -
  FTransactionResult.successWithValue(data)
end

ほとんどの場合は正常に機能しますが、問題が発生することもあります。アプリがクラッシュしたり、接続が失われたりします。

I've been looking at "onDisconnect" to solve this - https://firebase.google.com/docs/reference/ios/firebasedatabase/interface_f_i_r_database_reference#method-detail - but from what I can see, there's no "inDisconnectRunTransaction".

How can I make sure that the viewing amount on the listing gets decremented no matter what?

Frank van Puffelen

A Firebase Database transaction runs as a compare-and-set operation: given the current value of a node, your code specifies the new value. This requires at least one round-trip between the client and server, which means that it is inherently unsuitable for onDisconnect() operations.

onDisconnect()ハンドラではなく、単純ですset()操作:あなたはハンドラをアタッチするとき、あなたは、クライアントが(どちらかきれいか、思わず自分の問題の場合のように)切断されたことをするとき、サーバの検出が起こるしたいのか、書き込み操作、指定します。

解決策は(NoSQLデータベースでよくあることですが)状況を適切に処理するデータモデルを使用することです。あなたの場合、視聴者ではなく、uid各視聴保存するのが最も自然なようです

itemViewers
  $itemId
    uid_1: true
    uid_2: true
    uid_3: true

これで、単純なvalueリスナーで視聴者の数を取得できます

ref.child('itemViewers').child(itemId).on('value', function(snapshot) {
  console.log(snapshot.numChildren());
});

そして、以下onDisconnect()使用してクリーンアップします。

ref.child('itemViewers').child(itemId).child(authData.uid).remove();

どちらのコードスニペットもJavaScript構文になっています。これは、入力した後にSwiftを使用していることに気付いたためです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Ant MediaServerから現在の視聴者数を尋ねるにはどうすればよいですか

分類Dev

YouTube APIを使用して特定のライブビデオの現在の視聴者数を取得するにはどうすればよいですか?

分類Dev

Komito Analyticsを使用して視聴されたビデオの割合を追跡するにはどうすればよいですか?

分類Dev

Androidの「いいね」システムを追跡するにはどうすればよいですか?

分類Dev

あるQTreeWidgetから別のQTreeWidgetにアイテムを移動し、情報を追跡するにはどうすればよいですか?

分類Dev

AndroidのRecyclerViewで選択したアイテムを追跡するにはどうすればよいですか?

分類Dev

PHPでYTビデオの視聴回数を取得するにはどうすればよいですか?

分類Dev

複数のQFutureを視聴するにはどうすればよいですか?

分類Dev

Twitchチャンネルの視聴者数を<p>タグに挿入するにはどうすればよいですか?

分類Dev

コーダの現金状態を追跡するにはどうすればよいですか

分類Dev

CesiumJS-視聴者の時間とティックを制御するにはどうすればよいですか?

分類Dev

32ビットUbuntuシステムでNetflixを視聴するにはどうすればよいですか?

分類Dev

GoogleアナリティクスでGoogle視覚化チャートイベントを追跡するにはどうすればよいですか?

分類Dev

ミックスパネルのタイムイベントをプロパティで追跡するにはどうすればよいですか?

分類Dev

Pythonでローカル変数の値を追跡するにはどうすればよいですか?

分類Dev

Androidでアプリの使用時間を追跡するにはどうすればよいですか?

分類Dev

追跡されていないファイルの.DS_Storeを無視するにはどうすればよいですか?

分類Dev

サーバー上のトラフィックをリアルタイムで追跡するにはどうすればよいですか?

分類Dev

サーバー上のトラフィックをリアルタイムで追跡するにはどうすればよいですか?

分類Dev

テキスト内の各単語の境界を取得するにはどうすればよいですか(視線追跡を読むため)?

分類Dev

メッセージの反応数を追跡するにはどうすればよいですか?

分類Dev

デルファイのポイントを追跡するにはどうすればよいですか

分類Dev

iOSでin_app_purchaseFirebaseイベントの追跡を停止するにはどうすればよいですか?

分類Dev

以前に無視されたファイルの追跡を開始するにはどうすればよいですか?

分類Dev

ライブラリの読み込みを追跡するにはどうすればよいですか?

分類Dev

Wacom Tabletのホバーイベントを追跡するにはどうすればよいですか?

分類Dev

一度に複数のアイコンではなく、現在選択されているアイコンを追跡するにはどうすればよいですか?

分類Dev

ファイルの追跡を停止し、Gitで現在の状態を維持するにはどうすればよいですか?

分類Dev

Windowsで外部字幕付きのDVDビデオを視聴するにはどうすればよいですか?

Related 関連記事

  1. 1

    Ant MediaServerから現在の視聴者数を尋ねるにはどうすればよいですか

  2. 2

    YouTube APIを使用して特定のライブビデオの現在の視聴者数を取得するにはどうすればよいですか?

  3. 3

    Komito Analyticsを使用して視聴されたビデオの割合を追跡するにはどうすればよいですか?

  4. 4

    Androidの「いいね」システムを追跡するにはどうすればよいですか?

  5. 5

    あるQTreeWidgetから別のQTreeWidgetにアイテムを移動し、情報を追跡するにはどうすればよいですか?

  6. 6

    AndroidのRecyclerViewで選択したアイテムを追跡するにはどうすればよいですか?

  7. 7

    PHPでYTビデオの視聴回数を取得するにはどうすればよいですか?

  8. 8

    複数のQFutureを視聴するにはどうすればよいですか?

  9. 9

    Twitchチャンネルの視聴者数を<p>タグに挿入するにはどうすればよいですか?

  10. 10

    コーダの現金状態を追跡するにはどうすればよいですか

  11. 11

    CesiumJS-視聴者の時間とティックを制御するにはどうすればよいですか?

  12. 12

    32ビットUbuntuシステムでNetflixを視聴するにはどうすればよいですか?

  13. 13

    GoogleアナリティクスでGoogle視覚化チャートイベントを追跡するにはどうすればよいですか?

  14. 14

    ミックスパネルのタイムイベントをプロパティで追跡するにはどうすればよいですか?

  15. 15

    Pythonでローカル変数の値を追跡するにはどうすればよいですか?

  16. 16

    Androidでアプリの使用時間を追跡するにはどうすればよいですか?

  17. 17

    追跡されていないファイルの.DS_Storeを無視するにはどうすればよいですか?

  18. 18

    サーバー上のトラフィックをリアルタイムで追跡するにはどうすればよいですか?

  19. 19

    サーバー上のトラフィックをリアルタイムで追跡するにはどうすればよいですか?

  20. 20

    テキスト内の各単語の境界を取得するにはどうすればよいですか(視線追跡を読むため)?

  21. 21

    メッセージの反応数を追跡するにはどうすればよいですか?

  22. 22

    デルファイのポイントを追跡するにはどうすればよいですか

  23. 23

    iOSでin_app_purchaseFirebaseイベントの追跡を停止するにはどうすればよいですか?

  24. 24

    以前に無視されたファイルの追跡を開始するにはどうすればよいですか?

  25. 25

    ライブラリの読み込みを追跡するにはどうすればよいですか?

  26. 26

    Wacom Tabletのホバーイベントを追跡するにはどうすればよいですか?

  27. 27

    一度に複数のアイコンではなく、現在選択されているアイコンを追跡するにはどうすればよいですか?

  28. 28

    ファイルの追跡を停止し、Gitで現在の状態を維持するにはどうすればよいですか?

  29. 29

    Windowsで外部字幕付きのDVDビデオを視聴するにはどうすればよいですか?

ホットタグ

アーカイブ