我正在尝试创建一个应用程序,在其中我可以获取/设置特定用户帐户中的数据,我被Firebase所吸引。
我遇到的问题是,当我的结构看起来像这样时,我不知道如何针对特定的用户数据:
online-b-cards
- users
- InnROTBVv6FznK81k3m
- email: "hello@hello"
- main: "Hello world this is a text"
- name: "Alex"
- phone: 12912912
我环顾四周,我真的找不到任何关于如何访问个人数据的东西,更不用说给他们一些随机的散列作为他们的ID了。
我该如何根据他们的名字抓取个人用户信息呢?如果有更好的方法,请告诉我!
发布于 2017-01-09 21:17:40
您可以通过以下代码获取详细信息。
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("users");
myRef.orderByChild("name").equalTo("Alex").addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot childDataSnapshot : dataSnapshot.getChildren()) {
Log.d(TAG, "PARENT: "+ childDataSnapshot.getKey());
Log.d(TAG,""+ childDataSnapshot.child("name").getValue());
}
发布于 2016-01-25 23:15:48
我认为最好的方法是根据Firebase提供的auth对象来定义用户的I。当我创建我的用户时,我会:
FirebaseRef.child('users').child(id).set(userData);
此id来自:
var ref = new Firebase(FIREBASE);
var auth = $firebaseAuth(ref);
auth.$authWithOAuthPopup("facebook", {scope: permissions}).then(function(authData) {
var userData = {}; //something that also comes from authData
Auth.register(authData.uid, userData);
}, function(error) {
alert(error);
});
Firebase身份验证服务将始终确保将其所有提供程序中的唯一id设置为uid。这样,您将始终拥有auth.uid,并且可以轻松访问所需用户以更新它,如下所示:
FirebaseRef.child('users').child(id).child('name').set('Jon Snow');
发布于 2017-12-13 23:57:13
最简单的方法是停止使用.push(){}
生成随机密钥的函数。而是使用.update(){}
函数,您可以在其中指定子对象的名称,而不是使用随机密钥。
https://stackoverflow.com/questions/14963776
复制相似问题