我正在尝试在节点President
下的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
然而,当我去我的firebase控制台时,我看不到任何数据。永远不会调用onSuccess()
,永远不会调用onFailure()
。
答案 0 :(得分:1)
问题是我在我的设备上限制了背景数据。因此数据未发布到firebase。
我还没有找到更好的方法来检测Android设备上的后台数据限制