Firebase 实时数据库现在无法正常工作?

Posted

技术标签:

【中文标题】Firebase 实时数据库现在无法正常工作?【英文标题】:Firebase RealtimeDatabase is not working now? 【发布时间】:2018-03-26 08:17:29 【问题描述】:

现在 Firebase RealtimeDatabase“写入”正在工作。

这是 firebase 示例代码。

FirebaseDatabase database = FirebaseDatabase.getInstance();
        DatabaseReference myRef = database.getReference("message");

        myRef.setValue("Hello, World!");

        myRef.addValueEventListener(new ValueEventListener() 
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) 
                // This method is called once with the initial value and again
                // whenever data at this location is updated.
                String value = dataSnapshot.getValue(String.class);
                Log.d(TAG, "Value is: " + value);
            

            @Override
            public void onCancelled(DatabaseError error) 
                // Failed to read value
                Log.w(TAG, "Failed to read value.", error.toException());
            
        );

ValueEventListeneronDataChange被调用,但是在firebase控制台的实时数据库中找不到写入的数据。

此外,使用早期制作的实时数据库的应用程序在今天也表现不佳。

这是 firebase 的错误吗? 我现在能做什么?

PS:这是日志消息。

10-14 18:19:52.730 15916-15916/com.example.star_man.firebaserealtimedatabase V/FA: onActivityCreated
10-14 18:19:52.766 15916-15933/com.example.star_man.firebaserealtimedatabase I/art: Do partial code cache collection, code=61KB, data=47KB
10-14 18:19:52.766 15916-15933/com.example.star_man.firebaserealtimedatabase I/art: After code cache collection, code=61KB, data=47KB
10-14 18:19:52.766 15916-15933/com.example.star_man.firebaserealtimedatabase I/art: Increasing code cache capacity to 256KB
10-14 18:19:55.549 15916-15935/com.example.star_man.firebaserealtimedatabase I/art: Starting a blocking GC Instrumentation
10-14 18:19:56.858 15916-15970/com.example.star_man.firebaserealtimedatabase V/FA: Using measurement service
10-14 18:19:56.860 15916-15970/com.example.star_man.firebaserealtimedatabase V/FA: Connecting to remote service
10-14 18:19:56.872 15916-15970/com.example.star_man.firebaserealtimedatabase V/FA: Activity resumed, time: 5619167420
10-14 18:19:56.876 15916-15916/com.example.star_man.firebaserealtimedatabase D/ViewRootImpl@b6baf53[MainActivity]: ThreadedRenderer.create() translucent=false
10-14 18:19:56.884 15916-15916/com.example.star_man.firebaserealtimedatabase D/InputTransport: Input channel constructed: fd=80
10-14 18:19:56.886 15916-15916/com.example.star_man.firebaserealtimedatabase D/ViewRootImpl@b6baf53[MainActivity]: setView = DecorView@304ed89[MainActivity] touchMode=true
10-14 18:19:56.905 15916-15916/com.example.star_man.firebaserealtimedatabase D/ViewRootImpl@b6baf53[MainActivity]: dispatchAttachedToWindow
10-14 18:19:56.949 15916-15916/com.example.star_man.firebaserealtimedatabase D/ViewRootImpl@b6baf53[MainActivity]: Relayout returned: oldFrame=[0,0][0,0] newFrame=[0,0][1440,2560] result=0x27 surface=isValid=true 525456977920 surfaceGenerationChanged=true
10-14 18:19:56.951 15916-15982/com.example.star_man.firebaserealtimedatabase D/mali_winsys: EGLint new_window_surface(egl_winsys_display*, void*, EGLSurface, EGLConfig, egl_winsys_surface**, egl_color_buffer_format*, EGLBoolean) returns 0x3000,  [1440x2560]-format:1
10-14 18:19:56.951 15916-15916/com.example.star_man.firebaserealtimedatabase D/ViewRootImpl@b6baf53[MainActivity]: mHardwareRenderer.initialize() mSurface=isValid=true 525456977920 hwInitialized=true
10-14 18:19:56.981 15916-15970/com.example.star_man.firebaserealtimedatabase D/FA: Connected to remote service
10-14 18:19:56.981 15916-15970/com.example.star_man.firebaserealtimedatabase V/FA: Processing queued up service tasks: 1
10-14 18:19:57.033 15916-15916/com.example.star_man.firebaserealtimedatabase D/ViewRootImpl@b6baf53[MainActivity]: MSG_RESIZED_REPORT: ci=Rect(0, 96 - 0, 0) vi=Rect(0, 96 - 0, 0) or=1
10-14 18:19:57.033 15916-15916/com.example.star_man.firebaserealtimedatabase D/ViewRootImpl@b6baf53[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 1
10-14 18:19:57.035 15916-15916/com.example.star_man.firebaserealtimedatabase D/ViewRootImpl@b6baf53[MainActivity]: mHardwareRenderer.initializeIfNeeded()#2 mSurface=isValid=true 525456977920
10-14 18:19:57.038 15916-15916/com.example.star_man.firebaserealtimedatabase V/InputMethodManager: Starting input: tba=android.view.inputmethod.EditorInfo@eceb89a nm : com.example.star_man.firebaserealtimedatabase ic=null
10-14 18:19:57.038 15916-15916/com.example.star_man.firebaserealtimedatabase I/InputMethodManager: [IMM] startInputInner - mService.startInputOrWindowGainedFocus
10-14 18:19:57.051 15916-15916/com.example.star_man.firebaserealtimedatabase D/InputTransport: Input channel constructed: fd=85
10-14 18:20:01.990 15916-15970/com.example.star_man.firebaserealtimedatabase V/FA: Inactivity, disconnecting from the service

【问题讨论】:

截屏你的消息节点以便我们可以看到结构,你可能需要遍历dataSnapshot子节点 @faruk,以上源码是firebase的示例代码。但不工作... 我只是将代码复制/粘贴到 IntelliJ 中,它会打印出Value is: Hello, World!。我不太确定为什么您的代码不起作用,但它似乎不太可能是 Firebase 的错误。你能在调试器中运行它并在onDataChangeonCancelled 中设置断点吗?其中之一应该被触发。如果没有发生这种情况,您可能没有网络连接。 顺便说一句,这个问题的代码完全相同:***.com/questions/46744231/… 【参考方案1】:

试一下把OnComplete Listener,调用了吗?

myRef.setValue("Hello, World!", new DatabaseReference.CompletionListener() 
  @Override
  public void onComplete(DatabaseError databaseError, DatabaseReference databaseReference) 
    if (databaseError != null) 
        Log.d("saving","Data could not be saved " + databaseError.getMessage());
     else 
        Log.d("saving","Data saved successfully.");
    
  
).addOnFailureListener(new OnFailureListener() 
    @Override
    public void onFailure(@NonNull Exception e) 
        Log.e("saving","Saving failed: " + e.getMessage());
    
);

【讨论】:

在android消息窗口中,是否有任何错误日志消息? 我在我的问题中附加了日志消息。但没有具体的消息。 sorry.. onFailureListener.. 怎么样还没有被调用? 我正在查看错误消息无法解析方法'addOnFailureListener(anonymous com.google.android.gms.tasks.OnFailureLister)'【参考方案2】:

原因是我们公司的防火墙。但我不知道为什么会调用onDataChange 回调函数。 我觉得应该调用onCancelled回调函数。

反正我修改了防火墙规则,现在可以正常使用了。

【讨论】:

以上是关于Firebase 实时数据库现在无法正常工作?的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 实时数据库未更新 // 数据未添加到 Firebase 实时数据库

OrderByKey 工作正常,但 OrderByChild 在 firebase 实时数据库中给出了意想不到的结果

带有 TypeScript 的 Firebase Cloud Functions:实时数据库更新以成功结束但没有更新任何内容,JS 工作正常

event.params 评估为未定义;无法使用 Cloud Functions 访问 Firebase 实时数据库中的 event.params.post

Firebase 实时数据库每日签到 Android

当您生成签名的 apk 时,Firebase 数据库无法正常工作