Regarding #1 , Programming Your App to Make Decisions might help. This ability depends on how you display your Chat (in a Label or using a ListView) . If you use a ListView use the AfterPicking event but it won't be a long tap. If you put your chat in Buttons, then you can use a long tap because they have that capability.
Regarding #3 you can use the Get Block to fill in a Label or to use a sound (use a Sound component) whenever the DataEvent changes.
Regarding #4 You can share images and text
Regarding all your concerns, you could search the community for 'chat cloudDB' and discover many discussions that have addressed similar issues. Also review CloudDB.
None of these issues are difficult if you learn to code rather than copy code. What have you tried?
You might find these Blocks useful. The code allows 'deleting' a post using a longclick because a Button has the appropriate event handler. It is easier to use a ListView to 'delete' a post. This code is awkward; you may be able to modify it to your purposes.
Here are some resources to help you learn to use the AI2 tools. A very good way to learn App Inventor is to read the free Inventor's Manual here in the AI2 free online eBook http://www.appinventor.org/book2 ... the links are at the bottom of the Web page. The book 'teaches' users how to program with AI2 blocks.