2016-10-29 27 views
0

我试图在节点President下的Firebase中保存新数据。我已经在该节点上设置了一些规则。未在firebase数据库中发布数据

"President":{ 
    "$userId":{ 
    ".write": "auth != null && $userId === auth.uid", 
     ".read": " auth.uid != null" 
    } 
}, 

在我的应用程序

FirebaseAuth mFirebaseAuth = FirebaseAuth.getInstance(); 
FirebaseUser mFirebaseUser = mFirebaseAuth.getCurrentUser(); 
FirebaseDatabase mDatabase = FirebaseDatabase.getInstance(); 

if(mFirebaseUser == null){ 

}else{ 
    String mUserId = mFirebaseUser.getUid(); 
    DatabaseReference vRef = mDatabase.getReference(MyFirebaseConstants.DATABASE_President); 
    DatabaseReference newPresidentRef = vRef.child(mUserId).push(); 
    String presidentKey = newPresidentRef.getKey(); 

President pres = new President()//POJO 
    // other few setters 

    pres.setId(visitorKey); 
    newPresidentRef.setValue(pres).addOnFailureListener(new OnFailureListener() { 
    @Override 
    public void onFailure(@NonNull Exception e) { 
     MyLogger.d("failed to save "+e.getMessage()); 
    } 
    }).addOnSuccessListener(new OnSuccessListener<Void>() { 
    @Override 
    public void onSuccess(Void aVoid) { 
     MyLogger.d("succedded"); 
    } 
    }).isSuccessful(); 

我的总统POJO扩展RealmObject并实现Parcelable

然而,当我去我的火力控制台,我看不到任何数据。 onSuccess()永远不会被调用,并且onFailure()永远不会被调用。

回答

1

问题是我在设备上限制了背景数据。因此数据未发布到Firebase。

我还没有找到更好的方式来检测Android设备上的背景数据限制