我正在尝试使用 svg 图像作为容器中的背景,并且我使用这个包“flutter_svg”我找不到提供程序方法来将其设置为装饰
Container(
margin: EdgeInsets.symmetric(horizontal: 5),
width: 60,
height: 20,
decoration: BoxDecoration(
color: currentColor.medium,
borderRadius: BorderRadius.circular(4),
image: DecorationImage(
image: SvgPicture.asset('assets/images/home.png'),
),
),
);
Run Code Online (Sandbox Code Playgroud)
参数类型“SvgPicture”无法分配给参数类型“ImageProvider”.dart(argument_type_not_assignable)
所以我不知道如何在这里使用 svg 作为 ImageProvider ,任何想法
I'm using node with google firebase and always I
(node:13556) DeprecationWarning: grpc.load: Use the @grpc/proto-loader module with grpc.loadPackageDefinition instead
my node version is a latest
$ node -v
v10.14.1
Run Code Online (Sandbox Code Playgroud) 我正在使用 SliverAppBar 测试代码并制作这个小部件,但有一个问题,我想隐藏顶部栏,当 SliverAppbar 展开时,它有“2 个图标和标题“类别页面”,但当我向上滚动时,它必须显示并隐藏 flexSpace
这是我的代码
return Scaffold(
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(
expandedHeight: 200,
floating: false,
pinned: true,
snap: false,
title: AppBar(),
centerTitle: true,
flexibleSpace: FlexibleSpaceBar(
background: CenterAppBar(),
// centerTitle: false,
// titlePadding: EdgeInsets.all(0),
// background: AppBar(),
),
),
SliverList(
delegate: SliverChildListDelegate([
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
CategoryCard(),
]),
)
],
),
);
Run Code Online (Sandbox Code Playgroud) 我想在处理或离开屏幕之前显示警报对话框,或者最晚显示警告 SnackBar,我该怎么做?
我知道如何显示对话框和 SnackBar,但我不知道我在哪里做,或者我什么时候尝试在处理生活钩子时这样做,但它出错了。由于上下文在显示对话框之前被处理。
我有我正在开发的应用程序,它在升级 1.12 之前的 Android 项目之前运行良好,而不是给我一个错误 google maps Trying to create a platform view of unregistered type
并使用我在 android 中使用的相同 google api 密钥在 IOS 中运行良好
我做flutter clean了不止一个,卸载应用程序并使用不同的模拟器,错误是一样的
androidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="come.example.appid">
<uses-permission android:name="android.permission.INTERNET"/>
<!-- Speech To Text configration -->
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<!-- Geolocator Configration Start -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- Geolocator Configration end -->
<!-- Local Notification -->
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<!-- Local Notification -->
<application
tools:replace="android:label"
android:label="appname"
android:icon="@mipmap/launcher_icon">
<!-- Google Maps --> …Run Code Online (Sandbox Code Playgroud) 首先,我必须为 API 指定路径,为常规网站指定第二个路径,所以我想将 API 分离为子域,如下所示
"rewrites":[
{
"source":"domain.com/**",
"destination":"/index.html"
},
{
"source": "api.domain.com/**",
"function": "app"
}
]
Run Code Online (Sandbox Code Playgroud)
我尝试了很多方法都失败了,我该怎么办?
我曾尝试新行的设定值ID在laravel 5,通过Point::create($value)与new Point($value)该$value含有值ID和该ID不MySQL数据库存在。每次我尝试新行时都会有一个自动 ID,而不是$value
我正在尝试在警卫队内部使用HTTP请求,但总是收到错误消息。当我删除HTTP请求并使用if条件时,就可以了。
isAdmin.guard.ts
import { Injectable } from '@angular/core';
import { Router ,CanActivate } from '@angular/router';
import { AuthService } from '../services/auth.service';
@injectable()
export class IsAdmin implements CanActivate {
constructor(
private auth:AuthService,
private router:Router
){}
canActivate(){
//get user data
this.auth.getUserData().subscribe((data)=>{
if(data.isAdmin){
return true;
}else{
this.auth.loggedIn();
this.router.navigate(['/login']);
}
})
}
}
Run Code Online (Sandbox Code Playgroud)
首先我创建了 2 个守卫,一个检查用户是否登录(如果没有导航到登录路线)
这是代码
import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { Observable } from 'rxjs';
import { AuthenticationService } from '../auth/authentication.service';
import { Router } from '@angular/router';
import { tap, map, take } from 'rxjs/operators';
import {of} from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class IsUserGuard implements CanActivate {
constructor( private auth:AuthenticationService, private router:Router){}
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {
return this.auth.user$.pipe(
take(1),
map(user => !!user), …Run Code Online (Sandbox Code Playgroud) 在 firestore 文档中,我找到了这种获取多数据的方式
db.collection("cities").where("capital", "==", true)
.get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
// doc.data() is never undefined for query doc snapshots
console.log(doc.id, " => ", doc.data());
});
})
Run Code Online (Sandbox Code Playgroud)
但是这样我必须在后端进行两个循环来处理并将数据推送到对象中,然后在前端进行另一个循环以显示数据!!有什么方法可以转义第一个循环并返回数据列表,而无需像那样在后端循环中处理它
return res.status(200).json(doc.data())
Run Code Online (Sandbox Code Playgroud)
答案
.get()
.then(query=>{
let data = query.docs.map(doc=>{
let x = doc.data()
x['_id']=doc.id;
return x;
})
res.status(200).json(data);
})
Run Code Online (Sandbox Code Playgroud)
这个答案将返回一个 doc id 作为数据本身的一部分
我正在尝试使用苹果来实现 firebase auth 这个例子 https://medium.com/@karlwhiteprivate/flutter-firebase-sign-in-with-apple-c99967df142f
但我遇到了这个问题
未定义的类“OAuthProvider”。
在这个片段中
OAuthProvider oAuthProvider =
new OAuthProvider(providerId: "apple.com");
final AuthCredential credential = oAuthProvider.getCredential(
idToken:
String.fromCharCodes(appleIdCredential.identityToken),
accessToken:
String.fromCharCodes(appleIdCredential.authorizationCode),
);
Run Code Online (Sandbox Code Playgroud) 据我所知,Flutter 上的 Firebase 会首先自动从缓存中读取,但我注意到在开发过程中,一个应用程序只是玩弄几乎 1 个包含 10 或 15 个文档的流,我的读取次数超过了 4000 次!通过这种方式,如果 10 个用户使用了我的应用程序,我将支付我所有的费用,因此我重新检查了每个查询、快照并将此代码放入
print(itemDoc.metadata.isFromCache ? "itemDoc NOT FROM NETWORK" : "itemDoc FROM NETWORK");
Run Code Online (Sandbox Code Playgroud)
编辑写代码和更多解释
当我更新、添加、删除文档控制台打印所有存储的文档时,我注意到这个问题出现在 IOS 中。
我有主流,我得到所有用户列表,然后每个列表我创建流来收听列表的项目
userListsStream(uid){
Stream<QuerySnapshot> shoppingListsStream =
Firestore.instance.collection('lists').where('owner', arrayContains: uid).snapshots();
shoppingListsStream.listen(
(QuerySnapshot listsQuery) async {
List<DocumentSnapshot> listsDocs = listsQuery.documents;
if (listsDocs.length != 0) {
//? foreach on lists Documents
listsDocs.forEach(
(DocumentSnapshot listDoc) async {
print(listDoc.metadata.isFromCache ? "listDoc NOT FROM
NETWORK" : "listDoc FROM NETWORK");
listItemsStream(listDoc.documentID);
}
)
}
})
}
listItemsStream(lid){
shoppingItemsRef = Firestore.instance.collection('lists').document(lid).collection('items'); …Run Code Online (Sandbox Code Playgroud)