Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flatter不工作时的Firebase读/写规则?_Firebase_Firebase Realtime Database_Firebase Security_Flutter - Fatal编程技术网

Flatter不工作时的Firebase读/写规则?

Flatter不工作时的Firebase读/写规则?,firebase,firebase-realtime-database,firebase-security,flutter,Firebase,Firebase Realtime Database,Firebase Security,Flutter,我的Firebase安全规则权限有问题。我正在记录以下错误 [Firebase/Database][I-RDB03812] Listener at /users/4eb8920a-e407-4488-bce4-c6f64f7b0891/Following/4eb8920a-e407-4488-bce4-c6f64f7b0891 failed: permission_denied [Firebase/Database][I-RDB03812] Listener at /UserVideo/4eb8

我的Firebase安全规则权限有问题。我正在记录以下错误

[Firebase/Database][I-RDB03812] Listener at /users/4eb8920a-e407-4488-bce4-c6f64f7b0891/Following/4eb8920a-e407-4488-bce4-c6f64f7b0891 failed: permission_denied
[Firebase/Database][I-RDB03812] Listener at /UserVideo/4eb8920a-e407-4488-bce4-c6f64f7b0891 failed: permission_denied
[Firebase/Database][I-RDB03428] Using an unspecified index. Consider adding ".indexOn": "displayName" at /users to your security rules for better performance
以下是我的规则结构:

{
  "rules": {
    "$user_id": {".write": true, ".read": true}

  }
}
以下是我如何构建我的数据

 UserVideo
     080d4874-47d9-4f4e-b815-9b8dc9c8a2ba
     13566fd4-047b-4d62-b2e5-e885e6667430
     2bd7038f-5490-470e-94eb-87695e4b1071
     2d84a15b-d0aa-4671-9f59-02f9d2ac5207
     3af71559-5c51-40c6-b2aa-8631671c2c25
     3fFH6evUANf3WDbDS3caiQu9crD3
     4eb8920a-e407-4488-bce4-c6f64f7b0891
        Vid1
        Vid10
        Vid2
        Vid3

users
 4eb8920a-e407-4488-bce4-c6f64f7b0891
  FollowedBy
    followedBy: 
      2
 Following
    4eb8920a-e407-4488-bce4-c6f64f7b0891
 displayName: 
   "Charles"
 photo: 
   "placeholder"

我的假设是,我的规则允许用户对任何可用路径进行读写,但我想我遗漏了一些东西。

我之前遇到过这个问题。我看起来您使用的不是uid,而是另一个id实例。从firebase实例获取uid的方法如下:

final FirebaseAuth auth = FirebaseAuth.instance;

var tempUser = await auth.currentUser();
currentUser= tempUser.uid;
确保您正在推送到根目录下的uid子项

reference.child(currentUser).push().set({                                        
  'video': 080d4874-47d9-4f4e-b815-9b8dc9c8a2ba,                                               
});
最后,像这样在firebase中设置读写规则

{
  "rules": {
    "$user_id": {
      ".write": "auth != null && auth.uid == $user_id",
      ".read": "auth != null && auth.uid == $user_id"
    }
  },
}

我之前遇到过这个问题。我看起来您使用的不是uid,而是另一个id实例。从firebase实例获取uid的方法如下:

final FirebaseAuth auth = FirebaseAuth.instance;

var tempUser = await auth.currentUser();
currentUser= tempUser.uid;
确保您正在推送到根目录下的uid子项

reference.child(currentUser).push().set({                                        
  'video': 080d4874-47d9-4f4e-b815-9b8dc9c8a2ba,                                               
});
最后,像这样在firebase中设置读写规则

{
  "rules": {
    "$user_id": {
      ".write": "auth != null && auth.uid == $user_id",
      ".read": "auth != null && auth.uid == $user_id"
    }
  },
}

你是对的,由于某些原因,我没有正确地验证我的整个应用程序。我查看了我的SWIFT代码,使用了
FirebaseAuth.instance.currentUser().uid
。在flatter
FirebaseAuth.instance.currentUser()
中,返回一个错误,表明currentUser不是函数。你知道如何在整个应用程序中正确地进行身份验证吗?我从来没有真正使用过swift,但请从FlatterSDK网站上查看此链接。您应该关注的主要功能是
\u ensureLoggedIn()
。此函数将允许用户通过Google登录,一旦调用了_ensureLoggedIn(),就可以从上面的答案中看到获取UID的方法。您是对的,我由于某些原因没有正确验证我的整个应用程序。我查看了我的SWIFT代码,使用了
FirebaseAuth.instance.currentUser().uid
。在flatter
FirebaseAuth.instance.currentUser()
中,返回一个错误,表明currentUser不是函数。你知道如何在整个应用程序中正确地进行身份验证吗?我从来没有真正使用过swift,但请从FlatterSDK网站上查看此链接。您应该关注的主要功能是
\u ensureLoggedIn()
。这个函数允许用户通过Google登录,一旦调用了_ensureLoggedIn(),就可以从上面的答案中看到获取UID的方法