我正在使用Firebase进行android studio项目,目前我已经完成了注册和登录,但是我的功能是将余额转移到另一个有余额的用户。
因此,我需要做的是找到将金额转移给其他用户后修改/更新余额内容(值)的方法。
但是我做过一些研究,他们说Firebase仅可以使用自己的用户帐户进行读/写。
假设我已经登录到user1,并且想要转移到user2。
谢谢。
-Users
-AsjdnskkhdiioAndmmnekwas
Name:"User1"
email:"user1@hotmail.com"
uid: "Adjshdkjwwnekwihwoi4kdnw4l2"
age:20
Balance:100
-DdmkenklahaoinskaAnmdmls
Name:"User2"
email:"user2@hotmail.com"
uid: "Cbdnaknekmmalsmdlen1qnio2"
age:21
Balance:100
-------------------------------------------------------------------
**how to become:**
-Users
-AsjdnskkhdiioAndmmnekwas
Name:"User1"
email:"user1@hotmail.com"
uid: "Adjshdkjwwnekwihwoi4kdnw4l2"
age:20
Balance:50
-DdmkenklahaoinskaAnmdmls
Name:"User2"
email:"user2@hotmail.com"
uid: "Cbdnaknekmmalsmdlen1qnio2"
age:21
Balance:150
答案 0 :(得分:1)
请记住,您是管理员(数据库中)所有用户的所有信息。
使用DatabaseReference
setValue()
方法来更新数据库中的信息,如下所示:
private DatabaseReference mDatabase;
mDatabase = FirebaseDatabase.getInstance().getReference();
String senderId = "sample_id_sender";
String receiverId = "sample_id_receiver";
mDatabase.child("users").child(senderId ).child("Balance").setValue(new_balance1);
mDatabase.child("users").child(receiverId).child("Balance").setValue(new_balance2);
如何知道接收者的ID ???这取决于您的情况,例如,您要向名称为“ User2”的用户发送1 $。您必须在数据库的用户列表中找到user2 id,我认为这些指南对您有帮助: https://firebase.google.com/docs/database/android/read-and-write https://firebase.google.com/docs/database/android/lists-of-data
答案 1 :(得分:0)
有趣的问题。我认为您可以结合使用修改后的数据模型,事务和服务器端安全规则来实现此目的。
逐步:
from UID
,to UID
和amount
。to
帐户。"balance": { ".validate": "data.child('uid').val() == auth.uid || newData.child('Balance').val() > data.child('Balance').val()" }
可伸缩性可能是一个问题,因为它正在修改多个子节点中的节点,这意味着事务遍及整个顶级分支。
另请参阅: