我是flutter编程的新手,并且正在使用firebase ml kit和firebase数据库构建一个简单的应用程序。这是我的大学项目中创建移动钱包的一部分。在这里,我正在通过ml视觉套件扫描信用卡/借记卡中的卡详细信息,并将其存储在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();
}
}
这是我尝试过的东西
请帮忙。您的所有帮助将非常有用。
我在您的pubspec.yaml文件中没有看到firebase_auth。假设您已将Firebase添加到您的应用程序中(如何将Firebase添加到应用程序),则每个用户都需要在使用firebase_database之前对Firebase进行身份验证(如果数据库的响应速度对您来说很重要,我建议您在firebase_database上使用cloud_firestore)。使用firebase_core启用到多个Firebase应用程序的连接。
请注意,要使用最新版本的firebase_auth,您的项目需要是AndroidX投诉(在此处输入链接描述)。
In the Project Gradle (project/app/build.gradle) add the following lines:
defaultConfig {
...
multiDexEnabled true
}
和
dependencies {
...
implementation 'com.android.support:multidex:1.0.3'
}
完成此操作后,请清理缓存并通过单击“文件”>“使缓存无效并重新启动”来重新启动项目
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句