google_drive_file_picker
google_drive_file_picker is a Flutter plugin that allows users to browse, select, and retrieve files from Google Drive within a Flutter application. It provides an easy-to-use API for authentication, file listing, selection, and downloading.
Features
- β Google Authentication β Handles OAuth 2.0 authentication.
- π File Listing β Fetch files and folders from Google Drive.
- π Search & Filter β Filter files by type, name.
- π File Selection β Pick single files.
- β¬οΈ Download Support β Download selected files.
Installation
1. Add Dependency
Add the package to your pubspec.yaml file:
dependencies:
google_drive_file_picker: latest_version
Run the following command:
flutter pub get
2. Configure Google Cloud Console
- Go to Google Cloud Console.
- Create a new project or use an existing one.
- Enable the Google Drive API.
- Create OAuth 2.0 credentials (Client ID & Secret).
- Add necessary scopes for file access.
- Download the credentials JSON file and configure it in your Flutter project.
Usage
1. Authenticate and Initialize
import 'package:google_drive_file_picker/google_drive_file_picker.dart';
final GoogleDriveFilePicker picker = GoogleDriveFilePicker();
await picker.authenticate();
2. Pick a File
final GoogleDriveFile? file = await picker.pickFile();
if (file != null) {
print("Selected file: ${file.name}");
}
3. Download a File
final File localFile = await picker.downloadFile(file);
print("Downloaded file path: ${localFile.path}");
Permissions
Make sure to configure the OAuth consent screen and include the necessary Google Drive API scopes in your project settings.
Required Scopes
https://www.googleapis.com/auth/drive.file
https://www.googleapis.com/auth/drive.readonly
Use Cases
- π Cloud Storage Access β Retrieve user files stored in Google Drive.
- π Document Management β Fetch and process PDFs, images, and other file formats.
- π Backup & Restore β Save app data in Google Drive for backup purposes.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions
Contributions are welcome! Feel free to open an issue or submit a pull request.
Contact
For questions or support, reach out via GitHub Issues.