wait until firebase retrieves data

后端 未结 9 1126
不思量自难忘°
不思量自难忘° 2020-11-29 08:33

I want to build a method that returns a child value in FireBase. I tried to do something like this:

public String getMessage(){

           


        
9条回答
  •  情歌与酒
    2020-11-29 09:05

    As @CMikeB1 commented on another response in the java world when we are dealing with servlets and services rest we use sync calls to perform operations, it would be useful to have both options in sdk firebase admin so that the developer could choose which one to use depending on his case use.

    I made my implementation from waiting to read the sync data using ApiFuture which is the current interface adopted by the sdk of the firebase admin. here's a link!

    public DataSnapshot getMessage() {
        final SettableApiFuture future = SettableApiFuture.create();
        databaseReference.child("MessagesOnLaunch").child("Message").addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                future.set(dataSnapshot);
            }
    
            @Override
            public void onCancelled(DatabaseError databaseError) {
                future.setException(databaseError.toException());
            }
        });
        try {
            return future.get();
        } catch(InterruptedException | ExecutionException e) {
            e.printStackTrace();
            return null;
        }
    }
    

提交回复
热议问题