天道酬勤,学无止境

firebase-realtime-database

Firebase queryEqual(toValue:

问题 我正在尝试快速使用 queryEqual(toValue:。我遇到的问题是我得到了空值。 我的数据看起来像这样 "time" : { "149791341619654" : { "URL_ID" : "02D03DA8-A652-4EFA-946F-1F0F2A963449", "UUID" : "F496B98E-3B4E-4602-B06D-C09B7F42DCB5", "date" : 1.497913416196546E9, "huer" : 0, "latitude" : 32.87926715336076, "longitude" : -117.2139702738423, "type_" : "Image", "uid" : "BjN8usKaW7NhqD2DxPPqAkjhnSx2" }, "149791381894099" : { "URL_ID" : "AB8D20E9-D1EB-4FD0-B0A8-CE755D1D8B91", "UUID" : "F534E1FC-DC55-4AFB-847D-64B614EF7137", "date" : 1.497913818940991E9, "huer" : 0, "latitude" : 32.87926715336076, "longitude" : -117.2139702738423, "type_"

2022-05-17 05:13:03    分类:技术分享    ios   swift   firebase   firebase-realtime-database

How to to set firebase database rules to secure data per user?

问题 我是 Firebase 的新手,我正在尝试了解将经过身份验证的用户 ID 用于保护数据的规则。 我在客户端上使用 Angularfire2。 而且我正在使用电子邮件/密码身份验证,效果很好。 如果我将数据库规则设置为允许经过身份验证的用户读取和写入,一切正常,我最终在 Firebase 数据库中得到以下数据...... { "notes" : { "-KmgjG9hxoXOTtuLTItz" : { "content" : "test", "title" : "Test note 1", "uid" : "iLH4Kg20shViwJebCmU8Ynp0OG23" }, { "-Kmh5igvItrJstbAhRpq" : { "content" : "test", "title" : "Test note2", "uid" : "iLH4Kg20shViwJebCmU8Ynp0OG23" } } } 现在我想限制经过身份验证的用户与每个对象上设置的用户 id (uid) 匹配的读写权限,所以我将规则更改如下... { "rules": { "notes": { ".read": "data.child('uid').val() == auth.uid", ".write": "newData.child('uid').val() == auth.uid" } } } 但是

2022-05-17 04:39:04    分类:技术分享    firebase   firebase-realtime-database   angularfire2

Firebase Read Only With No Authentication from App

问题 我从 Firebase 开始,基本上,我只想将数据存储在 Firebase 中,而我的应用程序中的用户只会进行只读操作。 从我目前阅读的内容来看,firebase 似乎只适用于身份验证,而且我已经阅读了有关匿名身份验证的信息。 但我没有看到匿名身份验证的优势,因为基本上用户永远不会升级为“永久”用户。 我想要的只是用户使用我的应用程序(并且只能通过我的应用程序)来获取数据,而无需进行身份验证。 实现这一目标的最佳方法是什么? 我是否创建用户名和密码,并将其用于我的应用程序中的每个人? 我是否继续使用匿名身份验证? 由于我将首先使用 Firebase Spark Free,并且它说实时数据库只有 100 个同时连接,所以每次创建匿名身份验证都将被视为始终打开一个连接,因此将我的应用程序限制为 100 个连接/用户? Spark Free 在匿名连接方面是否有限制? 谢谢 回答1 您无需身份验证即可使用 Firebase。 Firebase 官方频道上的一些 Youtube 教程甚至向您展示了如何在 Firebase 数据库和存储上禁用身份验证。 仅出于生产目的禁用read身份验证。 存储规则。 数据库规则。

2022-05-17 02:52:47    分类:技术分享    firebase   firebase-realtime-database   firebase-authentication   firebase-security

Firebase security rules: restrict write only to this uid, except for a couple of fields

问题 在 Firebase 中,我有一个users “节点”,如下所示: users: { someUid: { username: 'someUsername' activeConversations: {}, profile_picture: '' ... lots of other children }, ... }, anotherNode: { }, ... hundreds of other nodes 我现在的规则: { "rules": { ".read": true, ".write": true, "users": { ".indexOn": [ "username" ] }, "friendRequests": { ".indexOn": [ "timeSent" ] } } } 我想要做的是将孩子在users “节点”中的访问限制在拥有孩子的客户端。 因此,例如, someUid子项只能由具有 uid someUid的客户端写入。 任何登录的客户端都可以写入/读取其他“节点”,例如anotherNode 。 此外,任何登录的客户端都应该能够在users文档中的profile_picture和activeConversations上进行书写。 如何在不必在每个节点上都设置读/写规则的情况下实现这一点? 谢谢 回答1 我认为@Bradley Mackey

2022-05-16 23:29:20    分类:技术分享    javascript   firebase   firebase-realtime-database   firebase-security

Firebase DataSnapshot Null values

问题 我的应用程序允许您将播放器添加到节点,一旦添加它们,我将使用以下方法通过 phoneNum 搜索以查看该播放器是否存在于“用户”节点中。 我遇到问题的地方是我需要能够从找到的匹配节点中的用户访问数据快照中的值。 egre返回用户id的值。 当我尝试这样做时,它一直显示为空值,当我尝试登录到控制台时,它抱怨它是一个没有意义的空值,因为 if 语句应该处理这个问题。 该方法能够查找用户节点中是否存在玩家并显示 Toast 消息来指示这一点。 代码: public void checkPlayerNum(final String phoneNum) { DatabaseReference mDatabaseReference = FirebaseDatabase.getInstance().getReference().child("users"); if (!TextUtils.isEmpty(phoneNum)) { final Query phoneNumReference = mDatabaseReference.orderByChild("phoneNum").equalTo(phoneNum); ValueEventListener phoneNumValueEventListener = new ValueEventListener() { @Override

2022-05-16 20:40:04    分类:技术分享    android   firebase   firebase-realtime-database

Saving slider value

问题 import UIKit import FBSDKCoreKit import FBSDKLoginKit import FirebaseDatabase import FirebaseStorage class SecondViewController: UIViewController { var myEmail: String? var ref:FIRDatabaseReference? var currentValue = String.self @IBOutlet var emailShown: UIView! @IBOutlet weak var myEmailDisplayed: UILabel! @IBOutlet weak var sliderLabel: UILabel! @IBOutlet weak var verticalSlider: UISlider! { didSet{ verticalSlider.transform = CGAffineTransform(rotationAngle: CGFloat(-M_PI_2)) } } let img:UIImageView = UIImageView(frame: CGRect(x: 30, y: 180, width: 250, height: 320)) @IBAction func

2022-05-16 19:56:09    分类:技术分享    swift   firebase   firebase-realtime-database   uislider

Cannot convert undefined or null to object in react

问题 我正在尝试从初始状态对象映射对象属性。 我可以获得除嵌套的milesotnes之外的所有属性。 初始状态在组件类构造函数中定义,如下所示: class GoalView extends Component { constructor(props) { super(props); this.state = { dataGoal: {}, uid: firebaseAuth().currentUser.uid, currentGoalId: this.props.match.params.goalId, }; } componentDidMount = () => { const dataGoalRef = dbRef.child('goals/'+this.state.uid+'/'+this.state.currentGoalId); dataGoalRef.on('value', snap => { this.setState({ dataGoal: snap.val(), currentGoalId: this.props.match.params.goalId, }); }); } componentWillUnmount = () => { this.state = { currentGoalId: null, }; } ... } 我从 React Router

2022-05-16 19:05:14    分类:技术分享    javascript   reactjs   firebase   firebase-realtime-database

Data is not added to existing node in database

问题 我一直在尝试将数据添加到我的数据库中,但没有任何运气。 在我的代码中,我在单击时创建了一个按钮,它会将数据添加到我的用户数据库中,但不会将其添加到用户中,而只是将数据添加到外部,如下所示: 是因为使用 createUserWithEmailAndPassword() 函数时无法添加数据吗? 谁能告诉我它是如何完成的? btn.addEventListener("click", function() { firebase.auth().onAuthStateChanged(function(user) { if (user) { var massage = inputText.value; var ref = database.ref("Users"); var data = { display: massage } ref.push(data); } }); }); 回答1 每当您调用push() Firebase 时,都会生成一个新的唯一 ID。 因此,要将新数据添加到现有节点,您不应该调用 push。 相反,您需要为该用户找到对现有节点的引用。 最简单(也是迄今为止最常见)的方法是将用户数据存储在每个用户的 UID 下。 Users kHD...NoS username: "bob" 另请注意

2022-05-16 18:23:15    分类:技术分享    javascript   firebase   web   firebase-realtime-database   firebase-authentication

Cannot connect to Firebase Realtime Database

问题 我无法连接到 Firebase 实时数据库。 这是一个简单的代码,它将字段message的值设置为Hello world 。 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); FirebaseDatabase database = FirebaseDatabase.getInstance(); DatabaseReference myRef = database.getReference("message"); myRef.setValue("Hello, World!"); } 在firebase控制台上手动添加项目后,我更新了: google-services.json 添加了internet PERMISSION 制定public access规则按照说明在 Project 和模块build.gradle中添加了所有依赖项按照指示更新了proguard-rules.pro 使用 Firebase 启动清单仔细检查。 应用启动后,firebase 应更新数据库,但显示为null 。 如果我缺少任何东西以使其正常工作,请提供帮助。 PS

2022-05-16 11:28:17    分类:技术分享    android   firebase   firebase-realtime-database

Firebase store user variables?

问题 我正在为我的初学者项目使用 Firebase,但我对提供的文档感到困惑。 我已经初始化了一个身份验证表单,它正在工作。 但我不明白如何将它链接到实时数据库? 我知道 (user) 是当前登录的用户,但是如何存储当前用户的信息? 在我的应用程序中,每个用户都有一个余额(例如 100 美元)。 如何将用户的余额存储在他们的用户名中,我需要使用实时数据库吗? 回答1 基本上,当新用户注册时,您将通过user.uid访问他的 UID,您可以使用该 UID 将信息存储在实时数据库中。 您可以创建这样的结构。 root: { users: { $uid: { // Store all your custom info here. balance: 100 } } } 对于每个用户,您都会将他们的信息写入"users/uid" 。 这应该使保存和获取信息变得相当简单。 要获得当前用户的余额,您所要做的就是观察"users/uid/balance" 。 创建用户。 firebase.auth().createUserWithEmailAndPassword(email, password) .then(function(user){ alert(user.uid) }).catch(function(error) { console.log(error.message) })

2022-05-16 08:30:04    分类:技术分享    javascript   firebase   firebase-realtime-database   firebase-authentication