メッセージの削除は、当該メッセージの投稿者のみとした。(この種アプリでは、あまり意味はないが)
アプリ実行のビデオ:
(バックは、Googleに表示されている「Firebase Realtime Database」のページ)
スクリーンのデザイン:
変更点は特にないが、削除するアイテムのIDと投稿者名、および削除しようとしている者の名前をチェックするためのLabelを追加した。(赤点線枠内)
ブロック・コード:
追加・変更部分のみ。
1. 削除するアイテムのIDおよび投稿者名を格納する変数の設定
2. Listviewのアイテムをタップした場合、まず削除の是非を再確認するメッセージを表示。
削除するアイテムのIDおよび投稿者名に加え削除しようとしている者(ログインしている者)のニックネームをtestLabel (Label For Check)に表示。
3. 上記メッセージで「削除する」を選択した場合、投稿者名(deleteName)と削除しようとしている者(nickname)が同一であれば、Firebase所定のURL/MySecretMemo/ID.jsonに対しDeleteを実行。
同一でなければ、「このメッセージの作成者ではないので、削除できません。」を表示し、削除のリクエストはしない。
ListViewのアイテムを選択した状態を解放する。(ListViewのアイテムをタップした場合、当該アイテムの背景色がlight grayに変化するように設定してあるが、解放しなければ背景色がそのままとなる)
やはり、課題は、いつでもFirebaseとスムースにデータのやり取りができること。まだ、稀に不安定な時がある。
**********************************************************************
前回までのブログ(CRUDの内Uを除くCRDを実装):
MIT App Inventor 2で遊ぶ (GlobalChat 1)
データベースに対するCRUD操作に関する以前のブログ:
MIT App Inventorで遊ぶ (Journal アプリ4 D / REST API)
MIT App Inventorで遊ぶ (Journal アプリ3 U / REST API)