小编toa*_*sty的帖子

Firebase实时数据库规则(所有人都可以读取,但只能编辑所有者)

到目前为止,我一直在使用此规则配置

{
  "rules": {
    "items": {
      ".read" : true,
      "$uid": {
        ".read" : true,
        ".write": "auth != null && auth.uid == $uid"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

验证和其他目录被省略。/ items / user1 / item1 / items / user2 / item1

全部可以读取项目目录和所有用户项目(无私有项目)

我需要什么?

平面项目

"items" : {
     "item1": {},
     "item2": {}
}
Run Code Online (Sandbox Code Playgroud)

以userId作为属性

"item1" : {
    "uid": "userId"
}
Run Code Online (Sandbox Code Playgroud)

只有用户创建的项目可以编辑/删除,但所有人都可以看到。

我在考虑不同目录中的重复项,例如

"public_items": {
         "item1": {},
         "item2": {}
}


"items": {
   "userId": {
      "item1": {},
      "item2": {},
   }
}
Run Code Online (Sandbox Code Playgroud)

但这似乎不是一个好主意。

规则以原子方式应用。这意味着,如果该位置或父位置没有授予访问权限的规则,则读取或写入操作将立即失败。即使可以访问每个受影响的子路径,在父位置的读取也将完全失败。 https://firebase.google.com/docs/database/security/securing-data#read_and_write_rules_cascade

如果不能将规则应用于每个项目,则如何用不同的所有者构建项目目录?

nosql firebase firebase-realtime-database

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

动态模块功能和 ML Kit 在应用程序打开时崩溃

应用程序具有 ML Kit 功能(翻译)。我试图通过引入动态模块功能、按需加载来减小应用程序的大小。

遵循本指南 将 'com.google.mlkit:playstore-dynamic-feature-support:16.0.0-beta1' 添加到基础 apk 的 build.gradle

com.google.mlkit:translate:16.1.2 在功能模块 build.gradle 中,

一切都会编译并尝试在模拟器上运行,但不幸的是应用程序从日志启动时崩溃

java.lang.RuntimeException: Unable to get provider com.google.mlkit.common.internal.MlKitInitProvider: com.google.firebase.components.MissingDependencyException: Unsatisfied dependency for component Component<[class com.google.android.gms.internal.mlkit_translate.zzxa]>{0, type=0, deps=[Dependency{anInterface=class com.google.mlkit.common.sdkinternal.SharedPrefManager, type=required, injection=direct}, Dependency{anInterface=class com.google.android.gms.internal.mlkit_translate.zzwx, type=required, injection=direct}]}: class com.google.mlkit.common.sdkinternal.SharedPrefManager

 Caused by: com.google.firebase.components.MissingDependencyException: Unsatisfied dependency for component Component<[class com.google.android.gms.internal.mlkit_translate.zzxa]>{0, type=0, deps=[Dependency{anInterface=class com.google.mlkit.common.sdkinternal.SharedPrefManager, type=required, injection=direct}, Dependency{anInterface=class com.google.android.gms.internal.mlkit_translate.zzwx, type=required, injection=direct}]}: class com.google.mlkit.common.sdkinternal.SharedPrefManager
    
Run Code Online (Sandbox Code Playgroud)

哪一种没有意义。因为我添加了 playstore-dynamic-feature-support。

android firebase-mlkit dynamic-feature-module google-mlkit

4
推荐指数
2
解决办法
1564
查看次数