小编Dav*_*d L的帖子

使用 Firebase 和 Flutter 的多租户 SaaS 应用

我正在评估 Firebase 以在 SaaS 模式下开发一个应用程序,来自多个公司的人员可以访问它。公司中的每个人都应该只访问他们公司的数据,而不能访问其他公司的数据。同样在公司内部,可以定义每个人可以访问的内容和不可以访问的内容的配置文件。

  1. Firebase 文档建议不要使用多租户方法 ( https://firebase.google.com/docs/projects/learn-more )。他的建议是为每家公司管理一个 Firebase 项目。我的疑惑:这真的有必要吗?是否涉及在 PlayStores 中管理不同的应用程序?Firebase 项目可以以编程方式创建吗?

  2. 另一方面,Google Cloud 推出了允许多租户的 GCIP 身份验证服务(https://cloud.google.com/identity-platform/docs/multi-tenancy-authentication)。我的疑问是: 1. 要将其与 Firebase 一起使用,我是否必须创建比 Firebase 和 Flutter 更复杂的后端服务?2. 是否可以在不丢失 Firebase 提供的离线访问属性的情况下使用此服务?

谢谢,

大卫

android multi-tenant firebase flutter

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

如何修复网页上圆滑的圆形滑块形状?

我正在使用 SleekCircularSlider,它在 IOS 和 Android 上运行完美,但当我使用 Web 时它会显得扭曲......

网页上扭曲的滑块 网页上扭曲的滑块

移动设备上的正确滑块 移动设备上的正确滑块

我的代码看起来像文档...

  SleekCircularSlider(
    min: (_prefs.oxiMin>_prefs.oxiRango) ? (_prefs.oxiMin-_prefs.oxiRango)*1.0 : 0.0,
    max: (_prefs.oxiMax+_prefs.oxiRango)*1.0,
    initialValue: _initialOxi!,
    appearance: _cicularApariencia(modificadorOxi, _changeOxi),
    onChangeEnd: (double value) {
      tempOxigeno.oxigeno = double.parse(value.toStringAsFixed(1));
      _initialOxi = double.parse(value.toStringAsFixed(1));
      _changeOxi = false;
      setState(() {});
    }          
  ),
Run Code Online (Sandbox Code Playgroud)

我正在使用 Web 渲染器来保留自定义图标 ( flutter run -d chrome --web-renderer html)

Web 上真的支持圆形滑块吗?

如何修复 Web 上的错误形状?

更新:

我正在使用 FittedBox 进行测试,并且扭曲的外观在网络上继续存在。

我认为错误的行为是由于 CircularSliderAppearance 造成的......

  CircularSliderAppearance _cicularApariencia(String Function(double) modifier, bool animationEnabled) {
    List<Color> progColors = [const Color(0xff6d888d), const Color(0xffE0B872), const …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-dependencies flutter-web

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

如何在 Flutter Web 上启用自定义图标?

我有自定义图标,可以在 IOS 和 Android 上正常工作。当我在 Web 上部署时,应用程序中应显示图标的每个位置都会出现一个划掉的框。

控制台中出现的错误如下:

找不到一组 Noto 字体来显示所有缺失的字符。请为缺失的字符添加字体资源。

当我检查Flutter Design Fonts的文档时,我发现我已经遵循了这些步骤。

我的自定义图标 ( fishfarm.ttf) 位于资产文件夹中。在pubspec.yaml我有以下内容:

  fonts:
   - family: FishFarm
     fonts:
      - asset: assets/fishfarm.ttf
Run Code Online (Sandbox Code Playgroud)

我可以在 IOS 和 Android 中使用我的图标Icon(FishFarm.nombreicono)

如何在 Flutter Web 中使用自定义图标?

flutter flutter-web

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

当用户离线时,Firebase Auth 会话会持续多长时间?

我的应用程序在 Flutter 上,并且我正在使用离线持久性,因为我的用户最多可以停留 4 小时,然后才能再次建立互联网连接。我读过刷新令牌是长期存在的,理论上“永不过期”,但是在我的测试中我注意到 IOS 和 Android 会话之间存在很大差异:

我正在做的测试如下:

  1. 我通过互联网连接打开应用程序,然后继续进行身份验证过程(Firebase Auth 位于后台)。
  2. 我使用该应用程序,然后激活离线模式
  3. 我最小化应用程序
  4. 我激活了飞行模式,因此设备没有互联网连接(离线模式)
  5. 一段时间后,我检查应用程序是否仍在会话中,以便我可以继续在离线模式下输入数据。

到目前为止我得到的结果是:

在 iOS 上:

会话在离线模式下保持活动状态。我测试了75分钟,120分钟,最后一次测试了4小时。我无法保证会话永远不会过期,但它似乎确实是持久的。

在安卓上:

如果我在 25 分钟前进入,会话将保持活动状态。

只要我每 25 分钟至少操作一次应用程序,我就可以在离线时保持会话活动(我尝试了 5 个 25 分钟周期的序列)

如果它已最小化且离线超过 30 分钟,它会再次要求我提供凭据(这是不可能获得的,因为我处于离线状态)

我的问题是:

1. 操作系统为 IOS 和 Android 时,Firebase 身份验证后的离线会话时长有什么区别?

2. 是否有真正的衡量设备离线时 Firebase 身份验证会话持续多长时间的方法?

3. 有没有办法修改这个参数以获得更长的会话?我想要至少 12 小时,否则永远不会过期。


附件:

测试设备:

IOS:Iphone X。IOS版本14.2

Android:三星 J2 Android 版本 8.1.0

颤振代码:

我使用提供商验证用户身份的方式如下:

class UsuarioProvider {
  final FirebaseAuth _firebaseAuth;
  DatabaseReference db = FirebaseDatabase.instance.reference();

  UsuarioProvider({FirebaseAuth firebaseAuth})
    : _firebaseAuth = firebaseAuth …
Run Code Online (Sandbox Code Playgroud)

android ios firebase-authentication flutter

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