GithubHelp home page GithubHelp logo

firebase / flutterfire Goto Github PK

View Code? Open in Web Editor NEW
8.4K 174.0 3.9K 53.23 MB

πŸ”₯ A collection of Firebase plugins for Flutter apps.

Home Page: https://firebase.google.com/docs/flutter/setup

License: BSD 3-Clause "New" or "Revised" License

Java 14.03% Objective-C 12.36% Dart 57.07% Ruby 1.87% HTML 0.38% Swift 0.40% JavaScript 0.07% Kotlin 0.01% TypeScript 0.02% CMake 1.08% C++ 12.54% C 0.09% Shell 0.07%
flutter firebase dart google

flutterfire's Introduction

Flutter + Firebase logo

FlutterFire

Follow on Twitter Maintained with Melos OSSF scorecard


[Changelog] β€’ [Packages]


FlutterFire is a set of Flutter plugins that enable Flutter apps to use Firebase services. You can follow an example that shows how to use these plugins in the Firebase for Flutter codelab.

Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase. Flutter is used by developers and organizations around the world, and is free and open source.


Documentation


Stable Plugins

Name pub.dev Firebase Product Documentation View Source Android iOS Web MacOS Windows
Analytics Analytics pub.dev badge πŸ”— πŸ“– firebase_analytics βœ” βœ” βœ” Ξ² N/A
App Check App Check pub.dev badge πŸ”— πŸ“– firebase_app_check βœ” βœ” βœ” Ξ² N/A
Authentication Authentication pub.dev badge πŸ”— πŸ“– firebase_auth βœ” βœ” βœ” Ξ² (*)
Cloud Firestore Cloud Firestore pub.dev badge πŸ”— πŸ“– cloud_firestore βœ” βœ” βœ” Ξ² (*)
Cloud Functions Cloud Functions pub.dev badge πŸ”— πŸ“– cloud_functions βœ” βœ” βœ” Ξ² N/A
Cloud Messaging Cloud Messaging pub.dev badge πŸ”— πŸ“– firebase_messaging βœ” βœ” βœ” Ξ² N/A
Cloud Storage Cloud Storage pub.dev badge πŸ”— πŸ“– firebase_storage βœ” βœ” βœ” Ξ² (*)
Core Core pub.dev badge πŸ”— πŸ“– firebase_core βœ” βœ” βœ” Ξ² (*)
Crashlytics Crashlytics pub.dev badge πŸ”— πŸ“– firebase_crashlytics βœ” βœ” N/A Ξ² N/A
Dynamic Links Dynamic Links pub.dev badge πŸ”— πŸ“– firebase_dynamic_links βœ” βœ” N/A N/A N/A
In-App Messaging In-App Messaging pub.dev badge πŸ”— πŸ“– firebase_in_app_messaging βœ” βœ” N/A N/A N/A
Installations Installations pub.dev badge πŸ”— πŸ“– firebase_app_installations βœ” βœ” βœ” Ξ² N/A
Performance Monitoring Performance Monitoring pub.dev badge πŸ”— πŸ“– firebase_performance βœ” βœ” βœ” N/A N/A
Realtime Database Realtime Database pub.dev badge πŸ”— πŸ“– firebase_database βœ” βœ” βœ” Ξ² N/A
Remote Config Remote Config pub.dev badge πŸ”— πŸ“– firebase_remote_config βœ” βœ” βœ” Ξ² N/A

(*) for development only. Production on Windows is not supported.

Preview Plugins

Name pub.dev Firebase Product Documentation View Source Android iOS Web MacOS
ML Model Downloader ML Model Downloader pub.dev badge πŸ”— πŸ“– firebase_ml_model_downloader βœ” βœ” N/A Ξ²

Issues

Please file FlutterFire specific issues, bugs, or feature requests in our issue tracker.

Plugin issues that are not specific to FlutterFire can be filed in the Flutter issue tracker.

Contributing

If you wish to contribute a change to any of the existing plugins in this repo, please review our contribution guide and open a pull request.

flutterfire's People

Contributors

amirh avatar bparrishmines avatar branflake2267 avatar cbenhagen avatar collinjackson avatar creativecreatorormaybenot avatar dependabot[bot] avatar ditman avatar ehesp avatar ened avatar fkorotkov avatar goderbauer avatar helenaford avatar kevinthecheung avatar kevmoo avatar kroikie avatar lesnitsky avatar lyokone avatar mehmetf avatar mikehardy avatar mit-mit avatar mravn-google avatar nilsreichardt avatar pr-mais avatar rexios80 avatar rrousselgit avatar russellwheatley avatar salakar avatar sidrao2006 avatar szakarias avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flutterfire's Issues

[cloud_firestore] Crash "An error occurred while executing doInBackground()"

I have the feeling that the issue (flutter/flutter#37569) is getting lost in the old repo.

Fatal Exception: java.lang.RuntimeException: An error occurred while executing doInBackground()
       at android.os.AsyncTask$3.done + 318(AsyncTask.java:318)
       at java.util.concurrent.FutureTask.finishCompletion + 354(FutureTask.java:354)
       at java.util.concurrent.FutureTask.setException + 223(FutureTask.java:223)
       at java.util.concurrent.FutureTask.run + 242(FutureTask.java:242)
       at android.os.AsyncTask$SerialExecutor$1.run + 243(AsyncTask.java:243)
       at java.util.concurrent.ThreadPoolExecutor.runWorker + 1133(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run + 607(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run + 760(Thread.java:760)

Caused by java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.firebase.firestore.ak com.google.firebase.firestore.ak.a(com.google.firebase.firestore.d, java.lang.Object)' on a null object reference
       at io.flutter.plugins.firebase.cloudfirestore.CloudFirestorePlugin$7.doInBackground(CloudFirestorePlugin.java)
       at io.flutter.plugins.firebase.cloudfirestore.CloudFirestorePlugin$7.doInBackground(CloudFirestorePlugin.java)
       at android.os.AsyncTask$2.call + 304(AsyncTask.java:304)
       at java.util.concurrent.FutureTask.run + 237(FutureTask.java:237)
       at android.os.AsyncTask$SerialExecutor$1.run + 243(AsyncTask.java:243)
       at java.util.concurrent.ThreadPoolExecutor.runWorker + 1133(ThreadPoolExecutor.java:1133)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run + 607(ThreadPoolExecutor.java:607)
       at java.lang.Thread.run + 760(Thread.java:760)

I am seeing this on a lot of different devices now. Frequently saw this in pre-launch reports on the Play Store before (mostly Pixel devices), but now I am seeing it from a lot of different devices, e.g. Redmi Note 4, Gemini 4G, and Moto G(4) Plus.

From #hackers-flutterfire..:

I can only find Flutter related results when searching this exception and the issue has not gotten any attention yet.

Occurs in versions cloud_firestore: 0.12.9, Flutter SDK: v1.9.8 and probably versions from the months before that.

[cloud_firestore] Query cursors should support DocumentSnapshots

So the official example for pagination (https://firebase.google.com/docs/firestore/query-data/query-cursors#paginate_a_query) via query cursors seems to indicate that you can feed startAfter a DocumentSnapshot, and then start after that document in your next Query.

However when doing that, the error Invalid argument: Instance of DocumentSnapshot is thrown.

So consider this a feature request for further parity between the two APIs.

[cloud_firestore] Need id generator like createId() function in AngularFire

In some cases I need generate id before store document in firestore.
In AngularFire there is function createId()
In Flutter I can import 'package:cloud_firestore/src/utils/auto_id_generator.dart' (since 0.12.8, push_id_generator before)
and then use AutoIdGenerator.autoId()
But it's not true way, because I should import implementation files from another package.

[cloud_firestore] Retrieve displayName and photoUrl of other users without Firestore

Hi!
Just a quick question that came to my mind. Firebase stores displayName and photoUrl of the users in a different "database" that is inaccessible for other users (only the current user can retrieve his data); for this reason, I have to store for example the user's photo in Firestore with his uid. In this way, the photo is stored 2 times and it's not very handy because it needs a separate collection etc.
Is there a better approach to this problem or you think this could be implemented in future updates? Greetings.

Android integration - gradle plugin versions

At https://pub.dev/packages/firebase_auth under "1." there is an example how to configure dependencies:

dependencies {
  // Example existing classpath
  classpath 'com.android.tools.build:gradle:3.2.1'
  // Add the google services classpath
  classpath 'com.google.gms:google-services:4.3.0'
}

This combination does not work and causes an error, this is what the debug console in VSCode prints:

Launching lib/main.dart on Android SDK built for x86 in debug mode...

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformNativeLibsWithStripDebugSymbolForDebug'.
> tried to access method com.google.common.io.Files.fileTreeTraverser()Lcom/google/common/collect/TreeTraverser; from class com.android.utils.FileUtils

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 0s
Gradle task assembleDebug failed with exit code 1
Exited (sigterm)

(Running flutter run --stacktrace or flutter run --info does not work either, btw.)

I have never been an Android developer and have no idea, what is going on. Does the gradle plugin have a specific version dependency on the google services? Do I need to have a specific Android version running in my emulator? (Currently a Pixel 3 with API 27...)

The only combination that is working and actually builds the project is:

dependencies {
  classpath 'com.android.tools.build:gradle:3.2.1'
  // Add the google services classpath - v4.2.0 works!!
  classpath 'com.google.gms:google-services:4.2.0'
}

Please advice! And please improve the documentation! After all Flutter was made for people who do NOT develop with Java or Swift, right? Thank you!

[cloud_firestore] D8: Program type already present:

Note: /Users/uditchugh/Desktop/dev/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.9+1/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/CloudFirestorePlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /Users/uditchugh/Desktop/dev/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.12.9+1/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/CloudFirestorePlugin.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
D8: Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/0.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/1.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/8.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/9.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/10.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/11.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/12.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/13.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/14.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/15.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/16.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/17.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/18.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/19.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/20.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/21.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/22.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/23.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/24.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/25.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/26.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/27.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/28.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/29.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/30.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/31.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/32.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/33.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/34.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/35.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/36.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/37.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/39.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/40.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/41.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/42.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/43.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/44.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/45.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/46.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/47.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/48.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/49.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/50.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/51.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/52.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/53.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/54.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/55.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/56.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/57.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/58.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/59.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/60.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/61.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/62.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/63.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/66.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/67.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/68.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/69.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/70.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/71.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/72.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/73.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/74.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/75.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/76.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/77.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/78.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/79.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/80.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/81.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/82.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/83.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/85.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/86.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/87.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/88.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/89.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/90.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/91.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/92.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/93.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/94.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/95.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/96.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/97.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/99.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/100.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/101.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/102.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/103.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/104.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/105.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/106.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/107.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/108.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/109.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/110.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/111.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/112.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/113.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/114.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/115.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/116.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/117.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/118.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/119.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/120.jar, /Users/uditchugh/Desktop/dev/pawfect/build/app/intermediates/transforms/dexBuilder/debug/121.jar
  Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
  Program type already present: android.support.v4.os.ResultReceiver$MyResultReceiver

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 1s
*******************************************************************************************
The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app.
See https://goo.gl/CP92wY for more information on the problem and how to fix it.
*******************************************************************************************
Finished with error: Gradle task assembleDebug failed with exit code 1

[firebase_admob] banner ad displays at top instead of the bottom

Looks like you guys moved your support out of the flutter/plugins repo, so I'm opening an issue here to bump an issue from the old repo.

This issue describes the problem, that banner ads on older versions of iOS are displaying in the wrong location (top left corner) when bottom is specified.

This PR fixes the problem.

I assume the author will need to open a new PR here to get it included? Can you reply to that PR with instructions if so.

[firebase_admob]AdMob mediation on flutter

Hi:
Β  1. Can I use the same key (ads_key, rewarded_key, interstitial_key, banner_key) on Android and iOS; or I have to set different keys;
Β  2. Can I configure AdMob mediation on flutter? How do I need to configure it?

[admob] onAdFailedToLoad: 3

Even when I create the key around 2 month ago, I still geting the anoying onAdFailedToLoad: 3
What I can do about that?

Is that possible to disable iCloud synchronisation?

It seems after the login is done even if the app is uninstalled, the device being remembered. I believe it's because the flag kSecAttrSynchronizable is not set to false. is that possible to provide configuration where you can specify the way you want this to behave ?

IOS - Facebook/Firebase config error on signInWithCredential

I'm getting the following error when I try to login in to Firebase using Facebook with my app. The Facebook login looks fine, credential gets set but FirebaseAuth.instance.signInWithCredential(credential) throws an exception. As far as I can tell app id and app secret are set properly in Firebase and match the Facebook settings. What else needs to be set correctly? Google login seems to work.

Code I'm using is this:

final facebookLogin = new FacebookLogin();
final facebookLoginResult = 
     await facebookLogin.logInWithReadPermissions(['email', 'public_profile']);
...

  case FacebookLoginStatus.loggedIn:
    print("LoggedIn");
    AuthCredential credential= FacebookAuthProvider.getCredential(accessToken: facebookLoginResult.accessToken.token );
    firebaseUser = await FirebaseAuth.instance.signInWithCredential(credential);
    break;

exception is thrown on:

    firebaseUser = await FirebaseAuth.instance.signInWithCredential(credential);

error is:

   PlatformException (PlatformException(ERROR_INVALID_CREDENTIAL, Unsuccessful 
   debug_token response from Facebook: {"error":{"message":"(#100) The App_id in the 
   input_token did not match the Viewing 
   App","type":"OAuthException","code":100,"fbtrace_id":"A9EbpMwrswKpp9SB-uyoPDh"}}, 
   null))

Any suggestions?

[firebase_auth] linkWithCredential uses current user instead of user object on which the function is called

I'm trying to manage the 'ERROR_CREDENTIAL_ALREADY_IN_USE' error when linking an account to another, by following the android guide: https://firebase.google.com/docs/auth/web/account-linking#link-email-address-and-password-credentials-to-a-user-account

In the last code section, when the credentials are already in use:

  • User logged in with account [A], and submitted credentials [C]
  • SignIn on the already existing account [B] with credentials [C]
  • Retrieve app's data linked to account [B]
  • Delete the existing account [B]
  • Link user account [A] to the credentials [C] and SignIn with credentials [C]
  • Import data of account [B] on the linked user

Ugly code:

AuthResult authResult;
final FirebaseUser previousUser = await FirebaseAuth.instance.currentUser();
try {
  authResult = await previousUser.linkWithCredential(credential);
} on PlatformException catch (err) {
  if (err.code == 'ERROR_CREDENTIAL_ALREADY_IN_USE') {
    // Signin to the existing account
    authResult = await FirebaseAuth.instance.signInWithCredential(credential);
    // TODO : Get data from the authResult.user account
    // Delete existing account
    // TODO : better deletion error management
    await authResult.user.delete();
    // Link previous user
    authResult = await previousUser.linkWithCredential(credential);
    // TODO : merge previous account data to current account
  } else {
    throw err;
  }
}

Sadly, calling previousUser.linkWithCredential() seems to use firebaseAuth.getCurrentUser() and not the user on which the call has been done, resulting into an USER_REQUIRED error.
See FirebaseAuthPlugin.java:275

[cloud_firestore] Transactions doesn't seem to work

Issue moved from flutter/flutter#28714

So we're running into some issues with transactions, where update statements run without errors, except they don't always update the document in question. Below are a few simple tests.

Test 1

Setup
Run on two Android devices, and do a countdown to trigger the code at the same time. The code simulates an artificially long transaction execution, by using Future.delayed. One device will use Future.delayed(Duration(seconds: 3)); and the other will use Future.delayed(Duration(seconds: 2));. The default transaction timeout is 5 seconds, so we're well within that.

The write operation is incrementing a counter in a single document.
The document looks like so: { counter: 0 }.

try {
  final docRef = Firestore.instance.document('test/test-document');
  await Firestore.instance.runTransaction((Transaction tx) async {
    print('-- TRANSACTION START --');
    final postSnapshot = await tx.get(docRef);
    final newVal = 1 + postSnapshot['counter'];
    await Future.delayed(Duration(seconds: 3));
    print('Updating counter value ' + newVal.toString());
    await tx.update(postSnapshot.reference, {'counter': newVal});
    print('-- TRANSACTION END --');
  });
} catch (e) {
  print(e);
}

Results
Device 1 with 2 second transaction console output:

I/flutter (30734): -- TRANSACTION START --
I/flutter (30734): Updating counter value 1
I/flutter (30734): -- TRANSACTION END --

Device 2 with 3 second transaction console output:

I/flutter (12311): -- TRANSACTION START --
I/flutter (12311): Updating counter value 1
I/flutter (12311): -- TRANSACTION END --
I/flutter (12311): -- TRANSACTION START --
I/flutter (12311): Updating counter value 2
I/flutter (12311): -- TRANSACTION END --

Expected document value:
{ counter: 2 }
Actual document value:
{ counter: 1 }

Notes for Test 1:
From observing the logs, device 2 seems to do what it should: It restarts its transaction after it receives the updated document from device 1, but the value of 2 never makes it to the database.

Test 2

Setup
Identical to Test 1, except it's only run on a single device, and a timeout is introduced for the transaction, which is shorter than the execution time for the transaction.

try {
  await Firestore.instance.runTransaction((Transaction tx) async {
    // ... Identical to before
  }, timeout: Duration(seconds: 1)); // <-- HERE
} catch (e) {
  print(e);
}

Results
Actual console output:

I/flutter ( 1247): -- TRANSACTION START --
I/flutter ( 1247): PlatformException(Error performing transaction, Timed out waiting for Task, null)
I/flutter ( 1247): -- TRANSACTION START --
I/flutter ( 1247): Updating counter value 1
I/flutter ( 1247): -- TRANSACTION END --
I/flutter ( 1247): Updating counter value 1
I/flutter ( 1247): -- TRANSACTION END --

Expected console output:

I/flutter ( 1247): -- TRANSACTION START --
I/flutter ( 1247): PlatformException(Error performing transaction, Timed out waiting for Task, null)

Notes for Test 2:
I'm not expecting it to retry the transaction at all, since the catch handler has already output the error, meaning the transaction is done.

That's all for now. If we dream up some more tests that also cause unexpected results, we'll update this post.

[firebase_database] transaction do nothing

i run transaction to add 1 to the last value, put it return the last value
this my code:
Future saveNewMission(Message message) async {
TransactionResult res = await _firebase
.reference()
.child('offices')
.child(this.officeKey)
.child('counters/missions')
.runTransaction((count) async {
count.value = (count.value ?? 0) + 1;
return count;
});

this.count = res.dataSnapshot.value;

always i get la last value that saved on the database

[firebase_admob] ios InterstitialAd listener not working

My app consists of BannerAd and InterstitialAd. Whenever I initialise both type of ads, listener of InterstitialAd not responding, always intercept by BannerAd listener.

If interstitial ad is loaded:
BannerAd event is MobileAdEvent.loaded, expect InterstitialAd event is MobileAdEvent.loaded

If interstitial ad is clicked:
BannerAd event is MobileAdEvent.clicked, expect InterstitialAd event is MobileAdEvent.clicked

If interstitial ad is closed:
BannerAd event is MobileAdEvent.closed, expect InterstitialAd event is MobileAdEvent.closed

[firebase_remote_config] Android build fails due to dependency

Trying to use firebase_remote_config version 0.2.0+5. No other Firebase plugins so far. iOS builds work!

Flutter doctor output:

Doctor summary (to see all details, run flutter doctor -v):
[βœ“] Flutter (Channel beta, v1.8.3, on Mac OS X 10.14.6 18G87, locale en-US)
 
[βœ“] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[βœ“] Xcode - develop for iOS and macOS (Xcode 10.3)
[βœ“] Android Studio (version 3.4)
[βœ“] VS Code (version 1.37.1)
[βœ“] Connected device (3 available)

When trying to run app in debug mode on android, get this error:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:preDebugBuild'.
> Android dependency 'com.google.firebase:firebase-common' has different version for the compile (16.0.3) and runtime (16.1.0) classpath. You should manually set the same version via DependencyResolution

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
Gradle task assembleDebug failed with exit code 1

[all] Gradle issue with firebase plugins

Error:

Configure project :app
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
registerResGeneratingTask is deprecated, use registerGeneratedResFolders(FileCollection)
WARNING: API 'variant.getMergeAssets()' is obsolete and has been replaced with 'variant.getMergeAssetsProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
To determine what is calling variant.getMergeAssets(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace.
WARNING: API 'variantOutput.getProcessResources()' is obsolete and has been replaced with 'variantOutput.getProcessResourcesProvider()'.
It will be removed at the end of 2019.
For more information, see https://d.android.com/r/tools/task-configuration-avoidance.
To determine what is calling variantOutput.getProcessResources(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace.
*********************************************************
WARNING: This version of cloud_firestore will break your Android build if it or its dependencies aren't compatible with AndroidX.
See https://goo.gl/CP92wY for more information on the problem and how to fix it.
This warning prints for all Android build failures. The real root cause of the error may be unrelated.
*********************************************************

My project has been configured to work with Android X and i am getting this issues when i import
cloud_firestore: ^0.12.9+1

issues do not appear when all packages have been removed

[cloud_firestore] Can't add to list with transaction. Please Help.

I tried many different ways but I cannot add to a placeholder list that I have. I followed exactly how the documentation handled it, too.

await Firestore.instance.collection('users').document(user.uid).setData({ 'ban_list': [], });

await tx.update(postRef, <String, dynamic>{ 'ban_list': postSnapshot.data['ban_list'] .add(listOfDocs[index]['id']) });

Annotation 2019-08-23 220202
Annotation 2019-08-23 220245

[all]] Firebase 6.7.0 crash hard_assert_apple.mm line 34

I have the same issue in our flutter app as described here: #3678

Crashlytics report:
Fatal Exception: NSInternalInconsistencyException FIRESTORE INTERNAL ASSERTION FAILED: Expected to be called by the executor associated with this queue (expected executor: 'com.google.firebase.firestore', actual executor: 'com.apple.main-thread') (expected executor_->IsCurrentExecutor())

[all] Gradle build fails for all firebase plugins

running gradle build with any firebase plugin installed will yield the following error
e.g. firebase_auth

> Task :app:processDebugGoogleServices FAILED
Parsing json file: xxx\android\app\google-services.json
         *********************************************************
WARNING: This version of firebase_auth will break your Android build if it or its dependencies aren't compatible with AndroidX.
         See https://goo.gl/CP92wY for more information on the problem and how to fix it.
         This warning prints for all Android build failures. The real root cause of the error may be unrelated.

e.g. cloud_firestore

Parsing json file: xxx\android\app\google-services.json
         *********************************************************
WARNING: This version of cloud_firestore will break your Android build if it or its dependencies aren't compatible with AndroidX.
         See https://goo.gl/CP92wY for more information on the problem and how to fix it.
         This warning prints for all Android build failures. The real root cause of the error may be unrelated.
         *********************************************************

[firebase_auth] IdTokenResult object needs to have a token constructor

We have applications that implement FirebaseUser class. In order to support this use case, classes such as IdTokenResult need to be open to being constructed as opposed to having only an internal API.

I propose to add:

  IdTokenResult.fromToken(String token):
      _data = <String, String>{'token': token},
      _app = null;

to it.

duplicate registration id on different devices

Hi

We followed all the steps correctly and deployed our app to the app store and play store as well. Now the issue is, when we see in our cloud DB, more than one user has same registration tokens(around 500 users have same registration IDs).

Please help!

[all] Some LICENSE files are marked as executable

This is a LOW cleanup bug. 3p compliance checks in google3 complain about this and we should fix it.

cloud_firestore/LICENSE
firebase_database/LICENSE
firebase_auth/LICENSE
firebase_storage/LICENSE
google_sign_in/LICENSE
firebase_analytics/LICENSE

[firebase_dynamic_links] Navigation fires on resume

  1. Click on a dynamic link
  2. The app opens and navigates to the correct page (1)
  3. Manually navigate to a different page (2) in the app
  4. Put app in background
  5. Resume the app
  6. The app navigates back to the dynamic link page

Expected behavior:
On resume, the app should remain on page 2.

This happens on both Android and iOS.

[√] Flutter (Channel stable, v1.7.8+hotfix.4, on Microsoft Windows [Version 10.0.18362.295], locale en-US)

[√] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
[√] Android Studio (version 3.5)
[√] Connected device (1 available)

β€’ No issues found!

[all] Flutter Android build fails with firebase dependencies.

I am using Android Studio 3.5 stable

java -version 1.8

and this is the issue :

I have project gradle like this :

buildscript {
    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.3.0'
        classpath 'com.google.gms:google-services:4.3.0'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

App gradle like this :

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 28

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.takefun.android"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    implementation 'com.android.support:multidex:1.0.3'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

apply plugin: 'com.google.gms.google-services'

& Pubspec.yaml like this :

name: Name
description: Expense.

version: 1.0.0+1

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
   flutter:
     sdk: flutter
  cupertino_icons: ^0.1.2
  image_picker: ^0.6.0+17
  cloud_firestore: ^0.12.9
  firebase_auth: ^0.14.0+2
  firebase_core: ^0.4.0+8
  google_sign_in: ^4.0.6
  fimber: ^0.3.2
  gradient_widgets: ^0.5.0
  flutter_svg: ^0.13.1
  flutter_vector_icons: ^0.2.0
  image_cropper: ^1.0.2
  firebase_storage: ^3.0.5
  stack_trace: ^1.9.3


dev_dependencies:
  flutter_test:
    sdk: flutter


My iOS builds runs well but my android build is failing with console output :

Launching lib/main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
Running Gradle task 'assembleDebug'...

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
> Could not resolve all task dependencies for configuration ':app:debugCompileClasspath'.
   > Could not find com.google.database.firebase:database.firebase-firestore:19.0.0.
     Required by:
         project :app > project :cloud_firestore
   > Could not find com.google.database.firebase:database.firebase-core:16.0.9.
     Required by:
         project :app > project :firebase_core

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 51s
Finished with error: Gradle task assembleDebug failed with exit code 1

Flutter doctor has the following output (just listed android and android studio related ones):


[βœ“] Flutter (Channel stable, v1.7.8+hotfix.4, on Mac OS X 10.14.6 18G87, locale en-US)
    β€’ Flutter version 1.7.8+hotfix.4 at /Users/adventure/dev/flutter
    β€’ Framework revision 20e59316b8 (5 weeks ago), 2019-07-18 20:04:33 -0700
    β€’ Engine revision fee001c93f
    β€’ Dart version 2.4.0

[βœ“] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    β€’ Android SDK at /Users/adventure/Library/Android/sdk
    β€’ Android NDK location not configured (optional; useful for native profiling support)
    β€’ Platform android-29, build-tools 28.0.3
    β€’ Java binary at: /Applications/Android Studio 3.5.app/Contents/jre/jdk/Contents/Home/bin/java
    β€’ Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)
    β€’ All Android licenses accepted.

[βœ“] Android Studio (version 3.5)
    β€’ Android Studio at /Applications/Android Studio 3.5.app/Contents
    β€’ Flutter plugin version 38.2.3
    β€’ Dart plugin version 191.8423
    β€’ Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b49-5587405)

[βœ“] Android Studio (version 3.4)
    β€’ Android Studio at /Applications/Android Studio.app/Contents
    β€’ Flutter plugin version 37.1.1
    β€’ Dart plugin version 183.6270
    β€’ Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1343-b01)

 

[firebase_messaging ] Error in run gradle after install firebase_messaging

Hello
i intalled firebase_messaging: ^5.1.4
after installation , gradle dose not work.
i set this settings :

in [project]/android/build.gradle :

`buildscript {
repositories {
google()
jcenter()
}

dependencies {

    classpath 'com.google.gms:google-services:4.3.0'

    classpath 'com.android.tools.build:gradle:3.2.1'
}

}`

in [project]/android/app/build.gradle :

`dependencies {
implementation 'com.google.firebase:firebase-core:17.2.0'

testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'

}

apply plugin: 'com.google.gms.google-services'`

and in androidmonifest :

<intent-filter> <action android:name="FLUTTER_NOTIFICATION_CLICK" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter>

but when i play codes i see this problem :

`Resolving dependencies...

  • Error running Gradle:
    ProcessException: Process "E:\projects\firstFlutterApp\whatsapp\android\gradlew.bat" exited abnormally:

FAILURE: Build failed with an exception.

  • Where:
    Build file 'E:\projects\firstFlutterApp\whatsapp\android\app\build.gradle' line: 24

  • What went wrong:
    A problem occurred evaluating project ':app'.

ASCII

  • Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 3s
Command: E:\projects\firstFlutterApp\whatsapp\android\gradlew.bat app:properties

Finished with error: Please review your Gradle project setup in the android/ folder.`

line 24 is : apply plugin: 'com.android.application'

what should i do ?

[runtime error] java.lang.IncompatibleClassChangeError: Class 'com.google.android.gms.auth.api.signin.internal.SignInHubActivity' does not implement interface 'androidx.lifecycle.LifecycleOwner' in call to 'androidx.lifecycle.Lifecycle androidx.lifecycle.LifecycleOwner.getLifecycle()' (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)

Setup

android/build.gradle

buildscript {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }

    dependencies {
        classpath 'com.google.gms:google-services:4.2.0'
        classpath 'com.android.tools.build:gradle:3.3.2'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        mavenCentral()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')

    project.configurations.all {

        exclude group: 'com.google.guava', module: 'failureaccess'


        resolutionStrategy.eachDependency { details ->
//            if (details.requested.group == 'com.android.support'
//                    && !details.requested.name.contains('multidex') ) {
//                details.useVersion "26.1.0"
//            }

            if('guava' == details.requested.name) {
                details.useVersion '27.0-android'
            }

        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

android/app/build.gradle

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

//def keystoreProperties = new Properties()
//def keystorePropertiesFile = rootProject.file('key.properties')
//if (keystorePropertiesFile.exists()) {
//    keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
//}

android {
    compileSdkVersion 28

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "dz.softart.tamejida"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        multiDexEnabled true
    }

//    signingConfigs {
//        release {
//            keyAlias keystoreProperties['keyAlias']
//            keyPassword keystoreProperties['keyPassword']
////            storeFile file(keystoreProperties['storeFile'])
//            storeFile file("D:\\codeLabs\\tamejida\\key.jks")
//            storePassword keystoreProperties['storePassword']
//        }
//    }
    buildTypes {
        release {
//            signingConfig signingConfigs.release

            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    def multidex_version = "2.0.1"
    implementation 'androidx.multidex:multidex:$multidex_version'

    implementation 'com.google.firebase:firebase-core:17.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

apply plugin: 'com.google.gms.google-services'

pubspec.yaml

name: tamejida
description: A new Flutter project.

# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter

  http: ^0.12.0+2
  provider: ^3.1.0
  firebase_auth: ^0.14.0+4
  google_sign_in: ^4.0.4
  flutter_facebook_login: ^2.0.1
  shared_preferences: ^0.5.3+4
  flutter_svg: ^0.13.1
  video_player: ^0.10.1+6
  flutter_swiper : ^1.1.6
  intl: ^0.15.8
  transparent_image: ^1.0.0
  cached_network_image: ^1.1.1
  carousel_slider: ^1.3.0
  flutter_radio: ^0.1.7
  connectivity: ^0.4.3+7
  photo_view: ^0.4.2
  shimmer: ^1.0.0

  flutter_downloader: ^1.1.9
  webview_flutter: ^0.3.13


dev_dependencies:
  flutter_test:
    sdk: flutter

Error

D/FeatureProxyBase(13397): FeatureProxyBase class constructor
D/MultiWindow(13397): MultiWindowProxy constructor.
D/FeatureProxyBase(13397): getService(), serviceName = multiwindow_service_v1
D/FeatureProxyBase(13397): FeatureProxyBase class constructor
D/MultiWindow(13397): MultiWindowProxy constructor.
D/FeatureProxyBase(13397): getService(), serviceName = multiwindow_service_v1
D/ActivityThread(13397): ACT-AM_ON_PAUSE_CALLED ActivityRecord{3fa64be4 token=android.os.BinderProxy@1b45f84d {dz.softart.tamejida/dz.softart.tamejida.MainActivity}}
D/ActivityThread(13397): ACT-PAUSE_ACTIVITY handled : 1 / android.os.BinderProxy@1b45f84d
V/ActivityThread(13397): Handling launch of ActivityRecord{d9ac6c token=android.os.BinderProxy@36bf8235 {dz.softart.tamejida/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}}
V/ActivityThread(13397): ActivityRecord{d9ac6c token=android.os.BinderProxy@36bf8235 {dz.softart.tamejida/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}}: app=io.flutter.app.FlutterApplication@230aa73e, appName=dz.softart.tamejida, pkg=dz.softart.tamejida, comp={dz.softart.tamejida/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}, dir=/data/app/dz.softart.tamejida-2/base.apk
D/FeatureProxyBase(13397): FeatureProxyBase class constructor
D/MultiWindow(13397): MultiWindowProxy constructor.
D/FeatureProxyBase(13397): getService(), serviceName = multiwindow_service_v1
D/MALI    (13397): _egl_make_current:857: [MALI] make current with display 0x1, context 0x40000003, state 0xaf8285d8
D/MALI    (13397): _egl_make_current:872: [MALI] Map __dpy 0x1 to dpy 0xb46f1920
D/MALI    (13397): _egl_make_current:906: [MALI] Map __ctx 0x40000003 to ctx 0xaf9df3d0
D/FeatureProxyBase(13397): FeatureProxyBase class constructor
D/MultiWindow(13397): MultiWindowProxy constructor.
D/FeatureProxyBase(13397): getService(), serviceName = multiwindow_service_v1
D/Surface (13397): Surface::setBuffersDimensions(this=0xb45c8400,w=720,h=1280)
D/FeatureProxyBase(13397): FeatureProxyBase class constructor
D/MultiWindow(13397): MultiWindowProxy constructor.
D/FeatureProxyBase(13397): getService(), serviceName = multiwindow_service_v1
D/FeatureProxyBase(13397): FeatureProxyBase class constructor
D/MultiWindow(13397): MultiWindowProxy constructor.
D/FeatureProxyBase(13397): getService(), serviceName = multiwindow_service_v1
V/ActivityThread(13397): Performing resume of ActivityRecord{d9ac6c token=android.os.BinderProxy@36bf8235 {dz.softart.tamejida/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}}
D/ActivityThread(13397): ACT-AM_ON_RESUME_CALLED ActivityRecord{d9ac6c token=android.os.BinderProxy@36bf8235 {dz.softart.tamejida/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}}
V/ActivityThread(13397): Resume ActivityRecord{d9ac6c token=android.os.BinderProxy@36bf8235 {dz.softart.tamejida/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}} started activity: true, hideForNow: false, finished: false
V/PhoneWindow(13397): DecorView setVisiblity: visibility = 4 ,Parent =null, this =com.android.internal.policy.impl.PhoneWindow$DecorView{1d2f0570 I.E..... R.....I. 0,0-0,0}
D/ViewRootImpl(13397): hardware acceleration is enabled, this = ViewRoot{254da0e9 dz.softart.tamejida/com.google.android.gms.auth.api.signin.internal.SignInHubActivity,ident = 1}
D/SQLiteDatabase(13397): beginTransaction()
D/SQLiteDatabase(13397): endTransaction()
V/ActivityThread(13397): Resuming ActivityRecord{d9ac6c token=android.os.BinderProxy@36bf8235 {dz.softart.tamejida/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}} with isForward=true
D/FeatureProxyBase(13397): FeatureProxyBase class constructor
D/MultiWindow(13397): MultiWindowProxy constructor.
D/FeatureProxyBase(13397): getService(), serviceName = multiwindow_service_v1
V/PhoneWindow(13397): DecorView setVisiblity: visibility = 0 ,Parent =ViewRoot{254da0e9 dz.softart.tamejida/com.google.android.gms.auth.api.signin.internal.SignInHubActivity,ident = 1}, this =com.android.internal.policy.impl.PhoneWindow$DecorView{1d2f0570 V.E..... R.....I. 0,0-0,0}
V/ActivityThread(13397): Scheduling idle handler for ActivityRecord{d9ac6c token=android.os.BinderProxy@36bf8235 {dz.softart.tamejida/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}}
D/ActivityThread(13397): ACT-LAUNCH_ACTIVITY handled : 0 / ActivityRecord{d9ac6c token=android.os.BinderProxy@36bf8235 {dz.softart.tamejida/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}}
D/ActivityThread(13397): ACT-AM_ON_PAUSE_CALLED ActivityRecord{d9ac6c token=android.os.BinderProxy@36bf8235 {dz.softart.tamejida/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}}
D/ActivityThread(13397): ACT-PAUSE_ACTIVITY handled : 1 / android.os.BinderProxy@36bf8235
D/OpenGLRenderer(13397): CanvasContext() 0x9f96c6c0 initialize 0x9faa6a08
D/Surface (13397): Surface::connect(this=0x9faa6a00,api=1)
D/MALI    (13397): _egl_make_current:857: [MALI] make current with display 0x1, context 0x40000003, state 0xaf8285d8
D/MALI    (13397): _egl_make_current:872: [MALI] Map __dpy 0x1 to dpy 0xb46f1920
D/MALI    (13397): _egl_make_current:906: [MALI] Map __ctx 0x40000003 to ctx 0xaf9df3d0
D/Surface (13397): Surface::setBuffersDimensions(this=0xb45c8400,w=720,h=1280)
D/GraphicBuffer(13397): register, handle(0x9f954700) (w:720 h:1280 s:720 f:0x1 u:0x000f02)
I/MaliEGL (13397): [Mali]window_type=1, is_framebuffer=0, errnum = 0
I/MaliEGL (13397): [Mali]surface->num_buffers=4, surface->num_frames=3, win_min_undequeued=1
I/MaliEGL (13397): [Mali]max_allowed_dequeued_buffers=3
D/Surface (13397): Surface::setBufferCount(this=0x9faa6a00,bufferCount=4)
D/GraphicBuffer(13397): unregister, handle(0x9f954700) (w:720 h:1280 s:720 f:0x1 u:0x000f02)
D/MALI    (13397): _egl_make_current:857: [MALI] make current with display 0x1, context 0x40000002, state 0x9f8c62e0
D/MALI    (13397): _egl_make_current:872: [MALI] Map __dpy 0x1 to dpy 0xb46f1920
D/MALI    (13397): _egl_make_current:906: [MALI] Map __ctx 0x40000002 to ctx 0xb4736650
D/Surface (13397): Surface::setBuffersDimensions(this=0x9faa6a00,w=720,h=1280)
D/GraphicBuffer(13397): register, handle(0x9f954700) (w:720 h:1280 s:720 f:0x1 u:0x000f02)
D/Surface (13397): Surface::allocateBuffers(this=0x9faa6a00)
D/MALI    (13397): _egl_make_current:857: [MALI] make current with display 0x1, context 0x40000003, state 0xaf8285d8
D/MALI    (13397): _egl_make_current:872: [MALI] Map __dpy 0x1 to dpy 0xb46f1920
D/MALI    (13397): _egl_make_current:906: [MALI] Map __ctx 0x40000003 to ctx 0xaf9df3d0
D/Surface (13397): Surface::setBuffersDimensions(this=0xb45c8400,w=720,h=1280)
D/MALI    (13397): _egl_make_current:857: [MALI] make current with display 0x1, context 0x40000003, state 0xaf8285d8
D/MALI    (13397): _egl_make_current:872: [MALI] Map __dpy 0x1 to dpy 0xb46f1920
D/MALI    (13397): _egl_make_current:906: [MALI] Map __ctx 0x40000003 to ctx 0xaf9df3d0
D/Surface (13397): Surface::setBuffersDimensions(this=0xb45c8400,w=720,h=1280)
D/MALI    (13397): _egl_make_current:857: [MALI] make current with display 0x1, context 0x40000003, state 0xaf8285d8
D/MALI    (13397): _egl_make_current:872: [MALI] Map __dpy 0x1 to dpy 0xb46f1920
D/MALI    (13397): _egl_make_current:906: [MALI] Map __ctx 0x40000003 to ctx 0xaf9df3d0
D/Surface (13397): Surface::setBuffersDimensions(this=0xb45c8400,w=720,h=1280)
V/ActivityThread(13397): Finishing stop of ActivityRecord{3fa64be4 token=android.os.BinderProxy@1b45f84d {dz.softart.tamejida/dz.softart.tamejida.MainActivity}}: show=true win=com.android.internal.policy.impl.PhoneWindow@36d662a5
D/ActivityThread(13397): ACT-STOP_ACTIVITY_SHOW handled : 0 / android.os.BinderProxy@1b45f84d
V/ActivityThread(13397): Finishing stop of ActivityRecord{d9ac6c token=android.os.BinderProxy@36bf8235 {dz.softart.tamejida/com.google.android.gms.auth.api.signin.internal.SignInHubActivity}}: show=true win=com.android.internal.policy.impl.PhoneWindow@1bf4767a
D/ActivityThread(13397): ACT-STOP_ACTIVITY_SHOW handled : 0 / android.os.BinderProxy@36bf8235
D/SQLiteDatabase(13397): beginTransaction()
D/MALI    (13397): _egl_make_current:857: [MALI] make current with display 0x1, context 0x40000003, state 0xaf8285d8
D/MALI    (13397): _egl_make_current:872: [MALI] Map __dpy 0x1 to dpy 0xb46f1920
D/MALI    (13397): _egl_make_current:906: [MALI] Map __ctx 0x40000003 to ctx 0xaf9df3d0
D/Surface (13397): Surface::setBuffersDimensions(this=0xb45c8400,w=720,h=1280)
D/SQLiteDatabase(13397): endTransaction()
D/SQLiteDatabase(13397): beginTransaction()
D/SQLiteDatabase(13397): endTransaction()
D/AndroidRuntime(13397): Shutting down VM
E/AndroidRuntime(13397): FATAL EXCEPTION: main
E/AndroidRuntime(13397): Process: dz.softart.tamejida, PID: 13397
E/AndroidRuntime(13397): java.lang.IncompatibleClassChangeError: Class 'com.google.android.gms.auth.api.signin.internal.SignInHubActivity' does not implement interface 'androidx.lifecycle.LifecycleOwner' in call to 'androidx.lifecycle.Lifecycle androidx.lifecycle.LifecycleOwner.getLifecycle()' (declaration of 'java.lang.reflect.ArtMethod' appears in /system/framework/core-libart.jar)
E/AndroidRuntime(13397): 	at androidx.lifecycle.LiveData.observe(LiveData.java:172)
E/AndroidRuntime(13397): 	at androidx.loader.app.LoaderManagerImpl$LoaderInfo.setCallback(LoaderManagerImpl.java:100)
E/AndroidRuntime(13397): 	at androidx.loader.app.LoaderManagerImpl.createAndInstallLoader(LoaderManagerImpl.java:400)
E/AndroidRuntime(13397): 	at androidx.loader.app.LoaderManagerImpl.initLoader(LoaderManagerImpl.java:421)
E/AndroidRuntime(13397): 	at com.google.android.gms.auth.api.signin.internal.SignInHubActivity.zzn(Unknown Source)
E/AndroidRuntime(13397): 	at com.google.android.gms.auth.api.signin.internal.SignInHubActivity.onActivityResult(Unknown Source)
E/AndroidRuntime(13397): 	at android.app.Activity.dispatchActivityResult(Activity.java:6294)
E/AndroidRuntime(13397): 	at android.app.ActivityThread.deliverResults(ActivityThread.java:3829)
E/AndroidRuntime(13397): 	at android.app.ActivityThread.handleSendResult(ActivityThread.java:3876)
E/AndroidRuntime(13397): 	at android.app.ActivityThread.access$1300(ActivityThread.java:178)
E/AndroidRuntime(13397): 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1519)
E/AndroidRuntime(13397): 	at android.os.Handler.dispatchMessage(Handler.java:111)
E/AndroidRuntime(13397): 	at android.os.Looper.loop(Looper.java:194)
E/AndroidRuntime(13397): 	at android.app.ActivityThread.main(ActivityThread.java:5631)
E/AndroidRuntime(13397): 	at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(13397): 	at java.lang.reflect.Method.invoke(Method.java:372)
E/AndroidRuntime(13397): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:959)
E/AndroidRuntime(13397): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:754)
D/SQLiteDatabase(13397): beginTransaction()
D/SQLiteDatabase(13397): endTransaction()

[firebase_dynamic_links] Have OnLinkErrorException extend PlatformException

Firebase dynamic links creates a new error object. This should extend PlatformException (it effectively carries the same signature) so that it can be thrown by the app if needed.

class OnLinkErrorException extends PlatformException {
  OnLinkErrorException._(String code, String message, dynamic details):
      super(code: code, message: message, details: details);
}

Add firebase_admob: ^0.9.0+6 and execute 'flutter build apk' with Gradle task assembleRelease failed with exit code 1

You are building a fat APK that includes binaries for android-arm, android-arm64.
If you are deploying the app to the Play Store, it's recommended to use app bundles or split the APK to reduce the APK size.
To generate an app bundle, run:
flutter build appbundle --target-platform android-arm,android-arm64
Learn more on: https://developer.android.com/guide/app-bundle
To split the APKs per ABI, run:
flutter build apk --target-platform android-arm,android-arm64 --split-per-abi
Learn more on: https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split
Initializing gradle... 0.5s
Resolving dependencies... 1.4s
Running Gradle task 'assembleRelease'...
Running Gradle task 'assembleRelease'... Done 1.1s
Gradle task assembleRelease failed with exit code 1

Remove firebase_admob: ^0.9.0+6 works fine

[firebase_dynamic_links] queryParameters added to generated ShortDynamicLink are not received in FirebaseDynamicLinks.instance.onLink callback

Future createDynamicLink(String shareId) async {
final DynamicLinkParameters parameters = DynamicLinkParameters(
uriPrefix: '',
link: Uri.parse(''),
androidParameters: AndroidParameters(
packageName: '',
minimumVersion: 0,
),
dynamicLinkParametersOptions: DynamicLinkParametersOptions(
shortDynamicLinkPathLength: ShortDynamicLinkPathLength.short,
),
);

final ShortDynamicLink shortLink = await parameters.buildShortLink();
Uri url = shortLink.shortUrl;
url = Uri.https(url.authority, url.path, {shareIdLabelInDynamicLink: shareId});

return url.toString();
}

Else where when the link is clicked and app gets launched, sharedListId below is not populated.

FirebaseDynamicLinks.instance.onLink(onSuccess: (PendingDynamicLinkData dynamicLink) async {
  final Uri deepLink = dynamicLink?.link;
  print("Received a new dynamic link request in running app : " + deepLink.toString());

  if (deepLink != null) {
    String sharedListId = deepLink.queryParameters[shareIdLabelInDynamicLink];
    linkToNewSharedList(sharedListId);
  }
}, onError: (OnLinkErrorException e) async {
  print('onLinkError');
  print(e.message);
});

[cloud_firestore] Firestore ConnectionState is in Waiting state forever in flutter app.

I am trying to fetch records from the Firestore database and show it in the Flutter app.

@override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
          title: Text('Hello'),
          actions: <Widget>[
            IconButton(icon: Icon(Icons.list), onPressed: _pushSaved)
          ]),
      drawer: _buildDrawer(),
      body: _buildCarpoolsList(),
    );
  }

Widget _buildCarpoolsList() {
    return StreamBuilder<QuerySnapshot>(
        stream: Firestore.instance.collection("carpools").snapshots(),
        builder: (context, snapshot) {
          if (!snapshot.hasData) {
            return CircularProgressIndicator();
          } else {
            var _carpools = snapshot.data.documents;
            return ListView(
                padding: const EdgeInsets.all(16.0),
                children: _deserializeCarpools(_carpools));
          }
        });
  }

In the _buildCarpoolsList() function the snapshot.ConnectionState is always ConnectionState.waiting, and the function returns CircularProgressBar().
Connection State

I have got a collection carpools in the FireStore database with a few records in it.
I have set the firestore database rules to allow all.

rules_version = '2';
service cloud.firestore {
  match /** {
      allow read, write: if true;
  }
}

My Firebase authentication works. (If that helps)

What could be missing here?

[Firebase_Crashlytics] TimeoutException when launching on Android

I've setup crashlytics on both android and ios for my flutter app.
While it is working flawlessly on iOS, I'm getting a java.util.concurrent.TimeoutException on Android.

This is the stacktrace:

Launching lib/main.dart on Android SDK built for x86 in debug mode...
Built build/app/outputs/apk/debug/app-debug.apk.
E/CrashlyticsCore(27143): Failed to execute task.
E/CrashlyticsCore(27143): java.util.concurrent.TimeoutException
E/CrashlyticsCore(27143): at java.util.concurrent.FutureTask.get(FutureTask.java:206)
E/CrashlyticsCore(27143): at com.crashlytics.android.core.CrashlyticsBackgroundWorker.submitAndWait(CrashlyticsBackgroundWorker.java:41)
E/CrashlyticsCore(27143): at com.crashlytics.android.core.CrashlyticsController.handleUncaughtException(CrashlyticsController.java:321)
E/CrashlyticsCore(27143): at com.crashlytics.android.core.CrashlyticsController$6.onUncaughtException(CrashlyticsController.java:301)
E/CrashlyticsCore(27143): at com.crashlytics.android.core.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.java:42)
E/CrashlyticsCore(27143): at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:1073)

I've double checked the setup multiple times and it's correct.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.