simonbengtsson / airdash

File sharing flutter webrtc app enabling sending files to any device from anywhere
https://airdash-project.web.app
MIT License
551 stars 110 forks source link

Congratulations + questions ? #22

Open postacik opened 1 year ago

postacik commented 1 year ago

Supports nearly every OS and works beautifully.

This may be the ultimate Airdrop alternative for all the operating systems.

Thanks for sharing.

Two questions:

1) I assume the files are not encrypted before sending. Is there any other encryption involved other than the TLS encryption during file transfer?

2) Is file transfer always peer to peer without any relays?

postacik commented 1 year ago

Third question:

I cloned the project.

I created a new Firebase project and updated APPFIREBASE_PROJECT_ID and APPFIREBASE_API_KEY values in .env file.

Then I ran "dart tools/scripts.dart app_env" which updated env.dart file.

However I get "flutter: LOG_ERROR: failedAnonSignIn AuthException: ADMIN_ONLY_OPERATION" error when the application starts.

Are there any other Firebase related settings that has to be done?

postacik commented 1 year ago

Answer to my 3rd question: I enabled Anonymous sign-in in the Firebase project and it worked.

Maybe you should add this info to README.md :)

simonbengtsson commented 1 year ago

Thanks! Glad you like it.

  1. The encryption method used is the one defined as part of the webrtc srtp protocol.
  2. When using Airdash from the app store etc it is using Twilio as a turn server whenever a peer to peer connection is not possible.
  3. Sounds great! If you submit a pull request I'll merge right away.
postacik commented 1 year ago

Besides enabling anonymous login, you also have storage, functions, firestore and hosting features on Firebase.

I suppose hosting is only for your website's static files.

Can you explain how to initialize the others on the Firebase project to be able to successfully run the application?

And Twilio is never mentioned in the readme. I think it also has a free tier for TURN. Is it possible to explain where to register for it and place the necessary API keys?

simonbengtsson commented 1 year ago

Good point! I added the required steps you mentioned now to the readme with a comment on that you also can setup twilio if you want to support turn servers.

postacik commented 1 year ago

I think firestore and storage rules (firestore.rules and storage.rules) also need to be deployed using firebase deploy function if they are being used to store data. Am I right?