【问题标题】:React Native Expo: Save user Info To Firebase Firestore DatabaseReact Native Expo:将用户信息保存到 Firebase Firestore 数据库
【发布时间】:2021-08-01 13:46:20
【问题描述】:

我正在尝试使用 firebase 注册用户。如下图。

这里是进口

import { auth } from "firebase/auth";
import "firebase/firestore";
import firebase from "../DataBase/FireBase/FireBase";

从“../DataBase/FireBase/FireBase”导入firebase;

 const [FullName, setFullName] = useState("");
  const [Email, setEmail] = useState("");
  const [Password, setPassword] = useState("");

 const signUp = async () => {
    try {
      await firebase.auth().createUserWithEmailAndPassword(Email, Password);
      const currentUser = firebase.auth().currentUser;

      const db = firebase.firestore();
      db.collection("users")
        .doc(currentUser.uid)
        .set({
          email: currentUser.email,
         FullName,
        });
    } catch (err) {
      console.log(err)
        alert("There is something wrong!!!!", err.message);
    }
  }

用户实际上可以注册。但数据没有保存到 firestore 数据库,也没有错误。 请有任何建议。

【问题讨论】:

  • 尝试await db.collection("users")...set()在promise之前添加await。
  • 它没有用。它给出了调用者没有权限的错误
  • 请分享您的安全规则...
  • 从“firebase/app”导入firebase; var firebaseConfig = { apiKey: "AIzaSyD120BMcOBY38i7YomVnopKjKeEIoC1RA", authDomain: "kdszoo-2492.firebaseapp.com", projectId: "kdszoo-249c2", storageBucket: "kdszoo-249c2.appspot.com", messagesSenderId: "50180921797 “1:50180927975:web:abdea6449368236d8e832”,测量ID:“G-WR8QSQ7G2E”}; // 初始化 Firebase firebase.initializeApp(firebaseConfig);导出默认 Firebase;
  • 我的意思是 Firestore 安全规则。请访问此页面并分享它们console.firebase.google.com/project/_/firestore/rules

标签: javascript react-native google-cloud-firestore react-native-android react-native-firebase


【解决方案1】:

当您的安全规则设置为allow write: if false; 时,除了 Admin SDK 之外没有人可以写入您的数据库。您可以将该值更改为 true,但随后您的数据可供 Internet 上的任何人使用。理想情况下,您可能只想将用户限制在他们自己的文档中,因此在这种情况下,请尝试以下安全规则:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    match /users/{userId} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}

现在用户可以读取/写入文档 ID 等于其 UID 的文档。您可以在documentation

中阅读有关安全规则的更多信息

【讨论】:

  • 请问我应该在哪里添加这一行
  • @houcinolmostaf 我更新了答案。只需将整个内容粘贴到安全规则中即可。我之前分享的网址。
猜你喜欢
  • 2017-05-29
  • 2020-08-10
  • 2021-09-17
  • 1970-01-01
  • 2018-03-08
  • 1970-01-01
  • 2017-03-02
  • 2019-04-29
  • 2022-11-25
相关资源
最近更新 更多