如何确保我的数据保存在Firebase上?

时间:2018-10-10 22:15:09

标签: android firebase firebase-realtime-database

我将数据存储在Android应用程序的Firebase数据库中。但是,我不确定如何检查我的数据是否保存在数据库中并显示适当的消息。到目前为止,我尝试检查通过push创建的唯一ID,看看它是否为null。但这对我没有用。还有其他建议吗?

private void createData(String name){
    SnapShotModel ssm = new SnapShotModel(name);
    myRef.push().setValue(ssm);
        AlertDialog.Builder builder;
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            builder = new AlertDialog.Builder(this, android.R.style.Theme_Material_Dialog_Alert);
        } else {
            builder = new AlertDialog.Builder(this);
        }
        builder.setTitle("ERROR!")
                .setMessage("Error in saving data. Please try again.")
                .setNegativeButton(android.R.string.ok, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {

                    }
                })
                .setIcon(android.R.drawable.ic_dialog_alert)
                .show();

}

3 个答案:

答案 0 :(得分:0)

FirebaseDatabase db;

onCreate
db = FirebaseDatabase.getInstance();

DatabaseReference readDb = db.getReference("Your Channel Name");
    readDb.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
            String value = dataSnapshot.getValue().toString();
            Toast.makeText(context, value, Toast.LENGTH_SHORT).show();
       }
        @Override
        public void onCancelled(@NonNull DatabaseError databaseError) {
        }
    });

在应用程序中以这种方式阅读时,您已连接到数据库。

DatabaseReference writeDb = db.getReference("Your Channel Name");
writeDb.setValue("Value");

这样您就可以写

注意:google-services.json不要忘记添加。

和build.grandle

implementation 'com.google.firebase:firebase-database:16.0.3'

答案 1 :(得分:0)

如果您想知道何时提交数据,可以添加完成监听器。选中documentation

ref.setValue("I'm writing data", new Firebase.CompletionListener() {
    @Override
    public void onComplete(FirebaseError firebaseError, Firebase firebase) {
        if (firebaseError == null) {
            Show dialog
        }
    }
});

答案 2 :(得分:0)

  

如何确保我的数据保存在Firebase上?

您可以确定是否在调用setValue()这样的方法后添加完整的侦听器:

myRef.push().setValue(ssm).addOnCompleteListener(new OnCompleteListener<Void>() {
    @Override
    public void onComplete(@NonNull Task<Void> task) {
        if (task.isSuccessful()) {
            Log.d(TAG, "Object successfully added");
        } else {
            Log.d(TAG, "Error: " + task.getException().getMessage());
        }
    }
});