[英]how can i update another user balance base on id in firebase?
我正在使用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
請記住,您是管理員(數據庫中)所有用戶的所有信息。 使用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://開頭火力點。 google.com/docs/database/android/lists-of-data
有趣的問題。 我認為您可以結合使用修改后的數據模型,事務和服務器端安全規則來實現此目的。
分步進行:
from UID
to UID
和amount
。 to
帳戶。 "balance": { ".validate": "data.child('uid').val() == auth.uid || newData.child('Balance').val() > data.child('Balance').val()" }
但是,可伸縮性可能是一個問題,因為它正在修改多個子節點中的節點,這意味着事務遍及整個頂級分支。
另請參閱:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.