AdaloのユーザーDB number を1日経ったらリセットする方法

Adaloにて、写真投稿アプリを開発中です。

そこで、ユーザーDBのNumber(投稿写真の閲覧数)を1日経ったら0にする機能を実装したいと考えています。
Countdown timerを使えば良いと思うのですが、Count downの設定方法がわかりません、、

どなたかご教授いただけると幸いです。よろしくお願いいたします。

定時にレコードの削除ってなかなか難しいんですよね。CountDown Timerで出来そうな気が一瞬するんですが、よく考えると出来ません。(と、思っている)

shimonさん私のnoteの投稿を見てくれたんですね。有難うございます。フォローしてくれているメンバーに最近shimonさんが入っているのを気づきました。(ここでは0941という名前ですが、他ではmuchoとかshndになっています)

昨年noteに投稿した内容で「定時にAdaloのレコードを削除する」というのがあります。(下記)本質問と全く同じ内容です。1日経ったらレコードを削除するという内容ですが、CountDownTimerでは出来なくて連携アプリのmake(旧integromat)で行っています。

makeを使ってやってみてはどうでしょうか?(必ずこれは出来ます。)

(何故カウントダウンタイマーでは出来ないのか?)
カウントダウンタイマーには致命的な部分があり、それは表示している時しか作動しないという点です。例えば夜の11:50に当日のレコードを削除するというアクションを設定したところで、その時間帯にアプリをオープンして、カウントダウンタイマーが表示されている状態でなければアクションは起こらないのです。

例1:
当日夜の23:50に当日のデータ(レコード)を削除するカウントダウンタイマーを設定した場合

・・・その時間帯にアプリをオープンしてないとカウントダウンタイマーは作動しません。翌日の例えば朝7時頃アプリをオープンしたとします。カウントダウンタイマーのアクションは何も行われてないので昨日のデータは削除されていません。その日の23:50にならないとデータが消えないのですが、その時間帯にアプリが閉じていればまたまた削除は行われません。つまり何もアクションが起こらずデータがたまっていく状態になっていきます。

例2:
上記と逆のパターンです。深夜0:00を過ぎて0:30にデータを削除するカウントダウンタイマーのアクションを設定したとする。

朝7時にアプリをオープンして閲覧のカウンターが一つ上がったとします。すると0:30以降に入ったデータはすべて削除されてしまいます。(自分がやった時は確かそうだった)
何人閲覧してもデータは0のままになります。

定時でデータを削除する方法は私は2つしか知りません。makeを使うか、スプレッドシートにデータを持って行ってGAS(Google Apps Script)で削除のスクリプトを組むかです。
個人的にはmakeでなくてZapierで削除が出来ればいいんですが、私が削除アプリを作った時は確か、Zapierでは削除機能が無かったのです。

その昔、NoCodeを始めた時は私はGlideから入ったのでデータはすべてスプレッドシートに入っていました。そのためGASで削除のスクリプトを組んで時間のトリガーを設定して削除を行っていました。

(追記)
一旦投稿して、確認のためにZapierをいじっていたら上記の投稿内容は間違いだったような気がしてきました。今回は閲覧回数をリセット(0にすればいいんですよね?)するのだからDeleteじゃなくてUpdateすればいいのかと思います。

ZapierはスケジュールされたDeleteができないのでしかたなくmakeを使ったと書きましたが、UpdateするならZapierでも可能です。ただ、いじってみましたが、やり方がイマイチ分かりません。分かったらまた投稿します。

(追記)その2
一晩寝て考えたら、カウントダウンでも行けそうな気がしてきました。毎日定時にデータをリセットするという考えでなく、アプリをオープンしたその日の一番最初に昨日のカウントデータをリセットすると考えればいけそうな気がします。今は考えがまとまって無いですが、ひらめいたら返信します。

全然関係ない方法で回答します。毎日の投稿閲覧数を当日アプリをオープンした最初の時に0にカウントダウンタイマーを使ってリセットする方法です。

1.閲覧回数用のデータベースを作る
投稿写真データベース(Image Slider)とは別に「閲覧数」というDBを作り、ここで当日の投稿数を管理します。項目として「データ入力日」(Start of todayを入力)と「count」(閲覧数のカウントです)の2つがあります。

2.カウントダウンタイマーの設定
日付が変わって翌日、最初にアプリをオープンしたときに閲覧数を0にリセットします。リセットするためのカウントダウンタイマーの設定をします。その日の2回目の閲覧時から単に画面を開いた回数を拾ってcount+1で回数を数えていきます。要は閲覧数DBに以下の2つのUpdateを設定します。

~日付が変わって翌日最初にアプリを開いたときに閲覧数を0にリセットする~

~閲覧数をリセットしたらアプリが開かれた数を数える~
Start of Todayで日付を入力しているのはいつアプリが開かれたかを知るためです。

(参考アプリ)

考えているのはこういう事では無いですか?

取り急ぎ別のタイプのアプリ作ったので見て下さい。

(参考アプリ)クローンコピー可能

(説明)
1.userデータベースの作り方
・・・「閲覧回数」(数字型)と「閲覧日」(Start of Today)を追加

2.このアプリの画面構成
・・・登録、ログインの他にホーム画面(投稿写真のImageSliderがある)、詳細画面、モーダル(閲覧回数が20回超えたときの警告)

3.ImageSliderで画像を切り替えた時に閲覧回数を+1するロジック(考え方)
・ホーム画面の下方にインプット1つとカウントダウンタイマーを配置
・ImageSliderで画像を切り替えるとインプットに1を入力するアクションを設定
・インプットに1が入るとカウントダウンタイマーが出現し、5秒後にuserDBの閲覧回数に+1する設定
※ImageSliderを動かす度にアクションが発生しますが、関係ないです。(インプットに相変わらず1が入力されますが、1がすでに入っており、カウントダウンタイマーは既に終了しているので何も起こりません。)ここがポイントです。

(カウントダウンタイマーに設定したアクションの中身)
閲覧日と閲覧回数を+1する

4.ImageSliderの任意の画像をクリックすると詳細画面に遷移する設定

・ImageSliderをクリックして選択状態にしておいて、Linkで「詳細画面」に遷移するようにします
・「詳細画面」に遷移したらスクリーンアクションを設定し、ここでも閲覧回数を+1する。(閲覧日のデータもuserDBに転送する)
※閲覧回数を+1するのは閲覧回数が20回以下の条件があるのでそれをsometimes・・・のところに記述します。(下記画像参照)

5.日付が変わったら閲覧回数を0にリセットするロジック
sometimes・・・の条件の所に前回の閲覧日と本日の日付(Start of Today)を比較して違っていたら日付が変わったという事なので閲覧回数をUpdateで0にリセットします。

6.モーダル画面の設定
・・・一日の閲覧回数が20回を超えていたらモーダル画面に遷移し警告を出します。このアプリでは以下の3カ所で設定しています。

・ホーム画面を開いたとき(スクリーンアクションの中に設定してある)
・ImageSliderで画像を動かしたとき
・詳細画面に遷移した時(これもスクリーンアクションの中に設定してある)

こんな感じです。カウントダウンタイマーは1回終了してしまうと画面が切り替わって初期状態に戻らない限り、アクションが再度起こらないようになっています。これを利用してImageSliderを何度いじっても1回しかアクション(閲覧回数を+1する)が起こらないようにしています。

アプリは30分くらいで作ったので細かいところ不具合あるかもしれませんが大目に見て下さい。質問あったら遠慮なく。

本当にありがとうございます。
実装できそうです!!

明日、閲覧数が0になっているかまた検証したいと思います。

本当にありがとうございました!

ごめんなさい。日付が変わったところで閲覧回数がうまく0にリセットされませんでした。
設定を変更しましたのでそれ使って下さい。

(修正アプリ)

(変更箇所)
日付が変わった時に閲覧回数を0にリセットするロジック

Inputを2つ設け、Start of Todayとuser閲覧日をそれぞれ表示させます。home画面を開いたときに作動するスクリーンアクションの中で「Start of Todayとuser閲覧日が等しくない」という条件式を入れる。それが満たさせるときにUpdateでuserの閲覧回数を0にリセットします。

(条件式)
input2(Start of Todayのこと)
is not equal to
input3(user 閲覧日のこと)

これはうまく動きます。userデータベースのデータをいろいろ変更しながらやってみて下さい。

userデータベースの閲覧日と閲覧回数は開発画面を開いて適当に変更しながらシミュレーションしてみて下さい。(日付が変わるまで待っている訳にいかないですからね。)

再度、代替案をご提案いただきまして本当にありがとうございます。

是非とも活用させて頂きます!!

今回の機能実装につきまして、感謝しかありません、ありがとうございます。
今後ともよろしくお願いいたします。