从Firebase检索特定数据

时间:2018-06-30 08:48:47

标签: android firebase firebase-realtime-database

我是Firebase的新手,我试图查看文档和youtube,但无法弄清楚。 我在firebase中有一个简单的id和display_name结构数据库:

 AppName{
  users{
   HzIYTbIbSzSlinF1Aa52WYUcD4E2{
    display_name: "Greg Nks"
   }
}

我希望数据通过ID(string)和display_name(string)进入User对象 我试图测试我的检索数据,但无法获取。 这是我的代码:

public void initializeVariables(View view){
    mToolBar = view.findViewById(R.id.users_appBar);
    usersRv = view.findViewById(R.id.friends_list_rv);
    mLayoutManager= new LinearLayoutManager(view.getContext());
    myDataset = new ArrayList<>();
    mAuth = FirebaseAuth.getInstance();
    mFirebaseDatabase = FirebaseDatabase.getInstance();
    myRef = mFirebaseDatabase.getReference();

    mAuthListener = new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            FirebaseUser user = firebaseAuth.getCurrentUser();
            if(user!=null){

            }
        }
    };

    myRef.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            //remember it will called in the start of the fragment
            showData(dataSnapshot); //TODO fix the reading from firebase
        }

        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {

        }
    });
}

public void showData(DataSnapshot dataSnapshot){
    User u= dataSnapshot.getValue(User.class);
    u=null;
}

谢谢!

1 个答案:

答案 0 :(得分:1)

import { Component, OnInit } from '@angular/core';
    import { Injectable } from '@angular/core';
    import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-viewall',
  templateUrl: './viewall.component.html',
  styleUrls: ['./viewall.component.css']
})
export class ViewallComponent{
    constructor() { }
}

@Injectable()
 export class RestComponent  {
  constructor(private http: HttpClient) { }
  configUrl = "http://34.201.147.118:3001/getAllData";
  getConfig() {
   return this.http.get(this.configUrl);
  }
} 

现在更改此声明

  Class User {
    private String display_name;
    private String userKey;
    public User(){
    }

    public User(String name,String key){
    display_name = name;
    userKey = key;
    }
     public void setDisplay_name(Sring name)
    {
    display_name = name;
    }
    public String getDisplay_name()
    {
    return display_name;
    }
     public void setUserKey(Sring key)
    {
    userKey = key;
    }
    public String getUserKey()
    {
    return userKey;
    }
}

由此:

User u= dataSnapshot.getValue(User.class);
相关问题