小编cas*_*cas的帖子

flutter async 同步编程

可能只有我一个人,但 Flutter 中的异步编程似乎绝对是一场噩梦。javascript/typescript 中非常简单的东西似乎变得不必要地困难。例如,我正在尝试创建一个简单的函数来检查用户是否已通过身份验证:

Future<bool> isLoggedIn() async {
  var user = await FirebaseAuth.instance.currentUser();
  return user == null ? false : true;
}
Run Code Online (Sandbox Code Playgroud)

然后在这样的场景中使用这个函数:

Widget _buildChild() async {
    var auth = await user.isLoggedIn();
    if (auth) {
      return new Navigation();
    } else {
      return new LoginUI();
    }
}
Run Code Online (Sandbox Code Playgroud)

但是第二个函数也需要返回一个未来?

标记为“async”的函数必须具有可分配给“Future”的返回类型。

使用 then() 而不是 await 也不起作用。之前在同步上下文中使用异步编程时,我曾多次遇到过这个问题。也许只是它的外观和感觉与 Promises 非常相似,我完全错过了文档中的功能。

asynchronous dart firebase flutter

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

Github 操作替换 flutter 项目中的 firebase json

我正在运行一个自动构建和发布 flutter 项目的 Github 操作。但我们使用开发和生产 Firebase 环境。因此,在构建之前,我想将 google-services.json 从开发版本切换到生产版本。但我似乎找不到一种简单的方法来做到这一点。或者是否有更好的方法在 flutter 中使用 Firebase 的开发和生产版本?

可能不是很有用,但这是当前状态下的操作

on:
  push:
    branches: [ stable ]

name: Build and Release 
jobs:
  build:
    name: Build 
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@master
      with:
        fetch-depth: '0'
    - name: Bump version and push tag
      id: tag
      uses: anothrNick/github-tag-action@1.17.2
      env:
        GITHUB_TOKEN: ${{ secrets.TOKEN }}
        WITH_V: true
        RELEASE_BRANCHES: stable
    - uses: actions/checkout@v1
    - uses: actions/setup-java@v1
      with:
        java-version: '12.x'
    - uses: subosito/flutter-action@v1
      with:
        flutter-version: '1.17.3'
    - run: flutter pub get
    - run: flutter …
Run Code Online (Sandbox Code Playgroud)

continuous-integration github firebase flutter github-actions

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