小编Mah*_*poo的帖子

SvgPicture 无法分配给 ImageProvider

我正在尝试使用 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 ,任何想法

dart flutter

15
推荐指数
2
解决办法
1万
查看次数

DeprecationWarning: grpc.load, Use the @grpc/proto-loader instead

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)

node.js firebase google-cloud-firestore

8
推荐指数
2
解决办法
2998
查看次数

使 sliverAppBar 在扩展模式下隐藏标题

在此输入图像描述

我正在使用 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)

dart flutter flutter-sliver

6
推荐指数
1
解决办法
6361
查看次数

如何在 Flutter 中离开屏幕之前显示确认对话框

我想在处理或离开屏幕之前显示警报对话框,或者最晚显示警告 SnackBar,我该怎么做?

我知道如何显示对话框和 SnackBar,但我不知道我在哪里做,或者我什么时候尝试在处理生活钩子时这样做,但它出错了。由于上下文在显示对话框之前被处理。

flutter flutter-dialog

6
推荐指数
1
解决办法
2932
查看次数

谷歌地图试图创建未注册类型的平台视图

我有我正在开发的应用程序,它在升级 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)

java android flutter flutter-dependencies

6
推荐指数
2
解决办法
5469
查看次数

firebase重写子域

首先,我必须为 API 指定路径,为常规网站指定第二个路径,所以我想将 API 分离为子域,如下所示

    "rewrites":[
  {
    "source":"domain.com/**",
    "destination":"/index.html"
  },
  {
    "source": "api.domain.com/**",
    "function": "app"
  }
]
Run Code Online (Sandbox Code Playgroud)

我尝试了很多方法都失败了,我该怎么办?

node.js firebase firebase-hosting

5
推荐指数
1
解决办法
1473
查看次数

使用 Laravel 在 AUTO_INCREMENT 字段中设置 id 值

我曾尝试新行的设定值ID在laravel 5,通过Point::create($value)new Point($value)$value含有值ID和该ID不MySQL数据库存在。每次我尝试新行时都会有一个自动 ID,而不是$value

mysql laravel

4
推荐指数
1
解决办法
5615
查看次数

Angular 4 HTTP请求处于保护状态

我正在尝试在警卫队内部使用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)

图片来自编辑 在此处输入图片说明

在此处输入图片说明

angular

3
推荐指数
1
解决办法
3274
查看次数

角 6 防护可观察悬挂

首先我创建了 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)

guard observable rxjs angular

2
推荐指数
1
解决办法
3027
查看次数

从 Firestore 检索数据作为 json

在 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 angular google-cloud-firestore

2
推荐指数
1
解决办法
9538
查看次数

firebase auth未定义类'OAuthProvider'

我正在尝试使用苹果来实现 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)

dart firebase firebase-authentication flutter

2
推荐指数
1
解决办法
1903
查看次数

Firebase 总是从互联网读取

据我所知,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)

firebase flutter google-cloud-firestore

1
推荐指数
1
解决办法
303
查看次数

测量两个位置之间的距离

Flutter 有没有办法获取两个位置之间的距离?

dart flutter

0
推荐指数
1
解决办法
5528
查看次数