添加 firebase_database 依赖项后,Flutter 应用程序不会停止安装
Flutter app does not stop installing when firebase_database depencancy is added
我是 flutter 编程的新手,我正在使用 firebase ml 套件和 firebase 数据库构建一个简单的应用程序。这是我创建移动钱包的大学项目的一部分。在这里,我正在做的是通过 ml vision kit 扫描 credit/debit 卡以获取卡的详细信息,并将其存储在 firebase 数据库中。扫描部分 运行 正确,当我添加数据库依赖项时,该应用程序甚至没有安装。调试时它给出
注意:C:\Users\SKYWALKER\AppData\Roaming\Pub\Cache\hosted\pub.dartlang.org\firebase_core-0.2.5+1\android\src\main\java\io\flutter\plugins\firebase\core\FirebaseCorePlugin.java 使用未经检查或不安全的操作。
这是我的 pubspec.yaml 文件。
environment:
sdk: ">=2.1.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
image_picker:
firebase_ml_vision: ^0.9.0+3
#firebase_database: ^2.0.2
#firebase_core: ^0.3.4
path_provider: ^1.4.4
firebase_database: 1.0.3
cupertino_icons: ^0.1.2
charts_flutter: ^0.6.0
rxdart: ^0.19.0
flutter_swiper: ^1.1.4
qr_code_scanner: ^0.0.12
flutter_card_io:
git:
url: git://github.com/procedurallygenerated/flutter_card_io.git
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
assets:
- assets/images/
- assets/images/users/
- assets/visa_logo.png
- assets/creditcardchipsilver.png
- assets/card_band.jpg
- assets/card_back.jpg
- assets/initialData.json
fonts:
- family: Varela
fonts:
- asset: assets/fonts/VarelaRound-Regular.ttf
这是两个函数
import 'package:image_picker/image_picker.dart';
import 'package:firebase_ml_vision/firebase_ml_vision.dart';
import 'package:firebase_database/firebase_database.dart';
final databaseReference = FirebaseDatabase.instance.reference();
class AddCardPage extends StatefulWidget {
@override
AddCardPageState createState() => AddCardPageState();
}
class AddCardPageState extends State<AddCardPage> {
File pickedImage;
bool isImageLoaded = false;
PaymentCard card1 = new PaymentCard();
static int id;
String encryptedCardNumber = "";
CreditCardModel card2 = new CreditCardModel("", "", "", "");
//the create record is a testing code
void createRecord(){
databaseReference.child("1").set({
'title': 'Mastering EJB',
'description': 'Programming Guide for J2EE'
});
databaseReference.child("2").set({
'title': 'Flutter in Action',
'description': 'Complete Programming Guide to learn Flutter'
});
}
Future pickImage() async
{
var tempStore = await ImagePicker.pickImage(source: ImageSource.camera);
if (mounted)
{
setState(() {
pickedImage = tempStore;
isImageLoaded = true;
});
}
readText();
}
Future readText() async{
String info;
FirebaseVisionImage ourImage = FirebaseVisionImage.fromFile(pickedImage);
TextRecognizer recognizeText = FirebaseVision.instance.textRecognizer();
VisionText readText = await recognizeText.processImage(ourImage);
info = readText.text;
String text1;
String txt;
for(TextBlock block in readText.blocks)
{
for(TextLine line in block.lines)
{
txt = line.text;
for(TextElement word in line.elements)
{
text1 = word.text;
}
}
}
//print(info);
bool cardNumFound = false;
bool expDateFound = false;
for(var i = 0; i < info.length ; i++)
{
if(!cardNumFound)
{
if(info[i] == '4' || info[i] == '5')
{
card2.cardNumb=info.substring(i,i+19);
cardNumFound = true;
}
}
if(!expDateFound)
{
if(info[i] == '/')
{
card2.expire = info[i-2] + info[i-1] + info[i] + info[i+1] + info[i+2];
expDateFound = true;
}
}
}
encrypt();
print(card2.cNum);
print(card2.expiryDate);
createRecord();
}
}
这是我尝试过的东西
- 使用旧版本 firebase_database 1.0.3
- 尝试在没有 firebase_database 的情况下进行调试。效果很好。应用运行正常。
- 尝试阅读 firebase_database 的文档并查找是否存在任何不兼容的依赖项。尽了最大的努力却没有结果。
请帮忙。非常感谢您的所有帮助。
我在您的 pubspec.yaml 文件中没有看到 firebase_auth。假设您已将 firebase 添加到您的应用程序 ( how to add firebase to app),每个用户在使用 firebase_database 之前都需要通过 firebase 的身份验证(如果数据库的响应速度对你很重要)。使用 firebase_core 启用与多个 Firebase 应用程序的连接。
请注意,要使最新版本的 firebase_auth 正常工作,您的项目需要符合 AndroidX (enter link description here)。
In the Project Gradle (project/app/build.gradle) add the following lines:
defaultConfig {
...
multiDexEnabled true
}
和
dependencies {
...
implementation 'com.android.support:multidex:1.0.3'
}
执行此操作后,通过单击“文件”>“使缓存无效并重新启动”来清理缓存并重新启动项目
我是 flutter 编程的新手,我正在使用 firebase ml 套件和 firebase 数据库构建一个简单的应用程序。这是我创建移动钱包的大学项目的一部分。在这里,我正在做的是通过 ml vision kit 扫描 credit/debit 卡以获取卡的详细信息,并将其存储在 firebase 数据库中。扫描部分 运行 正确,当我添加数据库依赖项时,该应用程序甚至没有安装。调试时它给出 注意:C:\Users\SKYWALKER\AppData\Roaming\Pub\Cache\hosted\pub.dartlang.org\firebase_core-0.2.5+1\android\src\main\java\io\flutter\plugins\firebase\core\FirebaseCorePlugin.java 使用未经检查或不安全的操作。
这是我的 pubspec.yaml 文件。
environment:
sdk: ">=2.1.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
image_picker:
firebase_ml_vision: ^0.9.0+3
#firebase_database: ^2.0.2
#firebase_core: ^0.3.4
path_provider: ^1.4.4
firebase_database: 1.0.3
cupertino_icons: ^0.1.2
charts_flutter: ^0.6.0
rxdart: ^0.19.0
flutter_swiper: ^1.1.4
qr_code_scanner: ^0.0.12
flutter_card_io:
git:
url: git://github.com/procedurallygenerated/flutter_card_io.git
dev_dependencies:
flutter_test:
sdk: flutter
flutter:
uses-material-design: true
assets:
- assets/images/
- assets/images/users/
- assets/visa_logo.png
- assets/creditcardchipsilver.png
- assets/card_band.jpg
- assets/card_back.jpg
- assets/initialData.json
fonts:
- family: Varela
fonts:
- asset: assets/fonts/VarelaRound-Regular.ttf
这是两个函数
import 'package:image_picker/image_picker.dart';
import 'package:firebase_ml_vision/firebase_ml_vision.dart';
import 'package:firebase_database/firebase_database.dart';
final databaseReference = FirebaseDatabase.instance.reference();
class AddCardPage extends StatefulWidget {
@override
AddCardPageState createState() => AddCardPageState();
}
class AddCardPageState extends State<AddCardPage> {
File pickedImage;
bool isImageLoaded = false;
PaymentCard card1 = new PaymentCard();
static int id;
String encryptedCardNumber = "";
CreditCardModel card2 = new CreditCardModel("", "", "", "");
//the create record is a testing code
void createRecord(){
databaseReference.child("1").set({
'title': 'Mastering EJB',
'description': 'Programming Guide for J2EE'
});
databaseReference.child("2").set({
'title': 'Flutter in Action',
'description': 'Complete Programming Guide to learn Flutter'
});
}
Future pickImage() async
{
var tempStore = await ImagePicker.pickImage(source: ImageSource.camera);
if (mounted)
{
setState(() {
pickedImage = tempStore;
isImageLoaded = true;
});
}
readText();
}
Future readText() async{
String info;
FirebaseVisionImage ourImage = FirebaseVisionImage.fromFile(pickedImage);
TextRecognizer recognizeText = FirebaseVision.instance.textRecognizer();
VisionText readText = await recognizeText.processImage(ourImage);
info = readText.text;
String text1;
String txt;
for(TextBlock block in readText.blocks)
{
for(TextLine line in block.lines)
{
txt = line.text;
for(TextElement word in line.elements)
{
text1 = word.text;
}
}
}
//print(info);
bool cardNumFound = false;
bool expDateFound = false;
for(var i = 0; i < info.length ; i++)
{
if(!cardNumFound)
{
if(info[i] == '4' || info[i] == '5')
{
card2.cardNumb=info.substring(i,i+19);
cardNumFound = true;
}
}
if(!expDateFound)
{
if(info[i] == '/')
{
card2.expire = info[i-2] + info[i-1] + info[i] + info[i+1] + info[i+2];
expDateFound = true;
}
}
}
encrypt();
print(card2.cNum);
print(card2.expiryDate);
createRecord();
}
}
这是我尝试过的东西
- 使用旧版本 firebase_database 1.0.3
- 尝试在没有 firebase_database 的情况下进行调试。效果很好。应用运行正常。
- 尝试阅读 firebase_database 的文档并查找是否存在任何不兼容的依赖项。尽了最大的努力却没有结果。
请帮忙。非常感谢您的所有帮助。
我在您的 pubspec.yaml 文件中没有看到 firebase_auth。假设您已将 firebase 添加到您的应用程序 ( how to add firebase to app),每个用户在使用 firebase_database 之前都需要通过 firebase 的身份验证(如果数据库的响应速度对你很重要)。使用 firebase_core 启用与多个 Firebase 应用程序的连接。
请注意,要使最新版本的 firebase_auth 正常工作,您的项目需要符合 AndroidX (enter link description here)。
In the Project Gradle (project/app/build.gradle) add the following lines:
defaultConfig {
...
multiDexEnabled true
}
和
dependencies {
...
implementation 'com.android.support:multidex:1.0.3'
}
执行此操作后,通过单击“文件”>“使缓存无效并重新启动”来清理缓存并重新启动项目